我遇到了Eclipse的这个问题。我有一个3 JTextFields
的应用程序窗口。我希望每次都检查字段是否具有可接受的值,如果没有,则在其下创建一个红色的JLabel,表示错误。
因为我使用了 AbsoluteLayout ,所以我需要知道setBounds()方法的JLabel
坐标。
所以我做的是从设计选项卡创建Jlabels
(获取坐标),然后点击它们然后我去了他们的代码。使用设计管理器,红色JLabel
从一开始就可见,而不是应该发生的事情。
所以我通过设计选项卡复制了创建JLabel
的代码,并将其放在MouseEvent
内,所以每次用户按下按钮在我的程序中创建内容时,我都会检查如果出现问题,我会在JLabel
内使用相同的代码创建" if clause"
,以检查输入值。问题是我的JLabel
不会创建它自己,这是我的程序中所有"if" clauses
的问题。
例如,无论我给出什么价值,这个JLabel永远不会被创建:
String sql_year = year.getText();
// year is my JTextField()
if((sql_year.length()>5)||(sql_year.length()<4))
{
JLabel digit = new JLabel("Error. Year is a 4-5 digit number!!");
digit.setForeground(Color.RED);
digit.setBounds(221, 126, 222, 38);
frame.getContentPane().add(digit);
digit.setVisible(true);
year.setText("");
}
答案 0 :(得分:1)
添加JLabel
后尝试此操作:
frame.getContentPane().validate();
frame.getContentPane().repaint();