0

我有一个 jframe,它的 jcmbobox 具有三个状态(三个项目,从 0 到 2)。

我想当用户选择第二个项目(1)时我的 jlabel 应该显示!

但是现在,当我选择第二个项目时,不要显示它!

public class LoginFrame extends javax.swing.JFrame {


public LoginFrame() {
    initComponents();
    this.setTitle("Library Management System Login");
    this.setLocation(300, 50);
    this.setResizable(false);
    if (jComboBox1.getSelectedIndex() == 1) {
        jLabel4.setVisible(true);
    }
    else{
        jLabel4.setVisible(false);
    }
}

我在 IDE 菜单中选择的索引号是 0。

4

2 回答 2

3

构造函数中的任何代码都不会反映对JComboBox. 您需要使用Listener诸如 anActionListener来检测这些变化:

jComboBox1.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
       jLabel4.setVisible(jComboBox1.getSelectedIndex() == 1);
    }
});

旁白:可以通过使语句直接在语句中使用比较表达式来进行轻微的改进setVisible,如图所示。

请参阅处理组合框上的事件

于 2013-05-31T16:32:10.993 回答
0

你应该使用ActionListener来做到这一点:

jComboBox1.addActionListener(this);
...
jLabel4.setVisible(jComboBox1.getSelectedIndex() == 1);
于 2013-06-02T08:32:36.830 回答