Text Field在Java swing中不显示通过键盘输入的文本.我已经设置了文本字段可编辑 &


void addClick(JTextField field,String s) {
field.addMouseListener(new MouseInputAdapter() {
public void mouseClicked(MouseEvent e) {
//when user clicks on amount text field,
//makes text field editable to enable user to enter amount in it
if (field.getText().equals(s)) {
field.setText(""); // sets the deafult text as empty string and display it
field.setEditable(true);
}
}
});
}

JTextField作为参数传递给addClick方法。最初它是不可编辑的,即setEditable(false)。但是当用户点击时,它应该是可编辑的,用户可以通过键盘输入数据。MouseListener工作正常,即它使文本字段可编辑(设置setEditable(true)),但是当我在文本字段中输入文本时,它不显示我输入的数据。顺便说一下,我已经实现了鼠标监听器接口的所有其他方法。

我可以知道如何使文本字段显示用户通过键盘输入的数据,因为文本字段没有从键盘读取任何输入。

if (field.getText().equals(s))
{
field.setText(""); // sets the deafult text as empty string and display it
field.setEditable(true);
}

使用这段代码,如果JTextField的内容等于字符串s,程序将使其可编辑。如果预定义/当前内容不等于s,则JTextField将不可编辑。由于您只编写了这一个void方法,我不知道内容,但如果它不等于s,我假设JTextField将不可编辑。

如果你想让JTextField不管当前内容是否等于s都是可编辑的,那么你必须在If条件之外写field.setEditable(true);