我在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("");
}
最佳答案
添加JLabel
后,请尝试以下操作:
frame.getContentPane().validate();
frame.getContentPane().repaint();
关于java - Eclipse不会创建JLabels,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25179163/