public class ViewGetBook extends View<ControllerGetBook> { //instance variable JTextField private JTextField t; //constructor public ViewGetBook(Library m,ControllerGetBook c) { super(m,c); //set layout this.setLayout(new GridLayout(2,1)); this.setSize(400,300); t=new JTextField("Type a user name here"); //initial the JTextField JButton b=new JButton("Tell me the book number"); b.addActionListener(new ActionListener() { // Anonymous class{} @Override public void actionPerformed(ActionEvent e) { String name=t.getText(); try { c.getBook(name); JOptionPane.showMessageDialog(null, c.getBook(name)); } catch (UnknownUserException e1) { System.out.println(e1.getMessage()); } } }); 如何实现默认文字功能
时间: 2023-06-18 22:04:00 浏览: 87
基于Java/C语言试题生成与考试系统的毕业设计,本系统主要包含两个部分:试题生成和考试系统
可以使用 `JTextField` 的 `addFocusListener` 方法来实现默认文字功能。具体方法如下:
1. 创建一个 `FocusListener` 匿名类,实现 `focusGained` 和 `focusLost` 方法。
2. 在 `focusGained` 方法中,判断 `JTextField` 的文本是否为默认文字,如果是,则清空文本。
3. 在 `focusLost` 方法中,判断 `JTextField` 的文本是否为空,如果是,则设置回默认文字。
以下是示例代码:
```
t=new JTextField("Type a user name here");
t.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
if (t.getText().equals("Type a user name here")) {
t.setText("");
}
}
@Override
public void focusLost(FocusEvent e) {
if (t.getText().isEmpty()) {
t.setText("Type a user name here");
}
}
});
```
这样,当用户点击 `JTextField` 输入框时,如果其中的文本为默认文字,则自动清空;当用户离开输入框时,如果文本为空,则自动设置回默认文字。
阅读全文