我在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/

10-12 22:28