JCheckBox自动选择第一个选项

时间:2016-01-07 16:03:05

标签: java

我正在开发一个系统,一旦选择了JComboBox的字段,就会将JButton的文本从连接更改为脱机,具体取决于{{1}中写入的字段的状态1}}。

这一切都已经完成,但我遇到了问题。

当我运行程序时,系统会自动进入事件JComboBox,而不是我选择了addActionListener字段?

有人可以帮我一把吗?

从答案

编辑

... Code(下)的块被写入一个在comboBox.addActionListener之前执行的方法。这段代码,它写道,因为我需要在版本上弹出JComboBox的元素......

JComboBox

现在,在其他Java方法中,(它叫做After),你会发现这个代码:

private void actionOfSearch(){

table.addMouseListener(new MouseAdapter(){

    public void mouseClicked(MouseEvent me){

    if(ipAvailable){
        blockSetRemoteUnit = false;
        timer = new Timer(10000, new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            //extracted_values is a Vector<Stirng>
            if(typeOfConnection.equals("ABC") || typeOfConnection.equals("DEF"))
                extracted_values = new E_ConnectionABC_DEF(resourceSelected, credential).result;
            else{
                try {
                    extracted_values = new E_ConnectionOther(resourceSelected, credential).result;
                } catch (InterruptedException e1) { e1.printStackTrace(); }
            }
            int size = extracted_values.elementAt(0).size();
            String stringOfNameLabel = "";
            String stringValueOfResource = "";
            JLabel nameResource = null;
            JProgressBar progressBar = null;
            subPanelOfinfoServer.removeAll();
            subPanelOfinfoServer.repaint();
            subPanelOfinfoServer.revalidate();
            if(!blockSetRemoteUnit)
                comboBox.addItem(" ");
            for(int i=0;i<size;i++){
                stringOfNameLabel = extracted_values.elementAt(1).elementAt(i);
                //Here I popolate the fields of JComboBox, and how you can see,
                //I can Change the fields, every time that I selected a different Row
                //of the JTable.        
                if(!blockSetRemoteUnit && stringOfNameLabel.length()==2 && stringOfNameLabel.contains(":"))
                    comboBox.addItem(stringOfNameLabel);         
                nameResource = new JLabel(stringOfNameLabel);
                nameResource.setHorizontalAlignment(SwingConstants.CENTER);
                stringValueOfResource = extracted_values.elementAt(0).elementAt(i);
                progressBar = new JProgressBar();
                progressBar.setValue(Integer.parseInt(stringValueOfResource));

                subPanelOfinfoServer.add(nameResource);
                subPanelOfinfoServer.add(progressBar);
            }
            blockSetRemoteUnit = true;
            }
       });
        timer.setRepeats(true);
        timer.setCoalesce(true);
        timer.setInitialDelay(0);
        timer.start();
    }
    else{
        logger.warn("[JTABLE-SelectRow]ATTENTION! " + resourceSelected + " is not Available");
        JOptionPane.showMessageDialog(null, "IP " + resourceSelected + " is not Available");
    }   
    }});
}

1 个答案:

答案 0 :(得分:1)

可能你正在创建你的动作监听器,然后在添加项目之前执行JComboBox,或者在注册动作istener之后以编程方式选择组合框的某些值。 在将所有项添加到JComboBox后创建动作侦听器。

发生这种情况是因为如果组合框没有项目,当您添加项目时,它将成为所选值,从而触发动作侦听器。