java更新JComboBox后,如何刷新框的长度
我试图创建一种更新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 楼答案
1)
JTextField
从ActionListener
监听ENTER key
2)移除
FocusListener
3)关于将新的
Item
作为最后一个Item
从JTextField
添加到JList
的示例,只需修改JComboBox
并正确添加方法insertItemAt()