更新JComboBox后,如何刷新框的长度

时间:2012-04-19 18:18:13

标签: java swing listener jcombobox jtextfield

我正在尝试创建一种更新JComboBox的方法,以便当用户在文本字段中输入内容时,某些代码将处理该条目并相应地更新JComboBox。我遇到的一个问题是我可以更新JComboBox,但是第一次打开时,该框没有刷新其中的选项长度,如下面的代码所示,它显示了额外的空白区域。我不知道是否有更好的方法来做到这一点,但这就是我想出的。

感谢您的帮助,

import java.awt.event.*;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Catch{
public static JComboBox dropDown;
public static String dropDownOptions[] = {
         "Choose",
         "1",
         "2",
         "3"};
 public static  void main(String[] args) {
     dropDown = new JComboBox(dropDownOptions);
     final JTextField Update = new JTextField("Update", 10);
     final JFrame frame = new JFrame("Subnet Calculator");
     final JPanel panel = new JPanel();
     frame.setSize(315,430);
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
     Update.addFocusListener(new FocusListener(){
    public void focusGained(FocusEvent arg0) {  
            }
            public void focusLost(FocusEvent arg0) {
                dropDown.removeAllItems();
                dropDown.insertItemAt("0", 0);
                dropDown.insertItemAt("1", 1);
                dropDown.setSelectedIndex(0);
            }
              });
        panel.add(Update);
        panel.add(dropDown);
        frame.getContentPane().add(panel);
        frame.setVisible(true);
        Update.requestFocus();
        Update.selectAll();
    }
}

1 个答案:

答案 0 :(得分:3)

1)JTextFieldENTER key

收听ActionListener

2)删除FocusListener

3)将Item作为Item的最新JTextField添加到JList的示例,只需修改JComboBox并添加方法{ {1}}正确

insertItemAt()