从Java中的多个JTextFields单击鼠标时清除文本

时间:2015-05-01 05:45:34

标签: java swing focus jtextfield mouselistener

我在两个JTextField中进行了一些错误检查。我会将它们标记为jtext1jtext2

现在我的GUI看起来像这样:

Enter number 1: [      ] // jtext1
Enter number 2: [      ] // jtext2
Convert         [ answer ]

我希望能够检查多个条件并显示错误消息。例如,如果用户没有为两个文本字段输入任何内容,并且命中转换,则应显示以下内容:

Enter number 1: [  Nothing entered    ] // jtext1
Enter number 2: [  Nothing entered    ] // jtext2
Convert         [ answer ]

并且,如果您使用鼠标单击jtext1我希望它清除消息,以便用户可以输入一个数字。如果他们点击jtext2,同样的事情也应该发生。

因此,例如,如果我点击jtext2,则应显示以下内容:

Enter number 1: [  Nothing entered    ] // jtext1
Enter number 2: [        ]              // jtext2
Convert         [ answer ]

问题在于,使用这段代码:

if(!jtext1.isvalid()) {
    jtext1.setText("Nothing entered");
    jtext1.addMouseListener(new MouseAdapter(){
        @Override
        public void mouseClicked(MouseEvent e) {
            jtext1.setText("");
        }
    });
}

if(!jtext2.isvalid()) {
    jtext2.setText("Nothing entered");
    jtext2.addMouseListener(new MouseAdapter(){
        @Override
        public void mouseClicked(MouseEvent e) {
            jtext2.setText("");
        }
    });
}

只有jtext1才有效。这对我来说是有道理的,因为我不认为我可以继续压倒同样的功能,但我怎么能绕过这个问题呢?

0 个答案:

没有答案