我有一个JComboBox
只有一个值在开始,并有一个MouseListener连接到它。当我点击JComboBox
时,我填入了一些新值。但popupMenu在第一次点击JComboBox
时的大小为一个元素。第二次所有值都将显示为正常。 任何想法如何让我的组合框在更新其内容后直接更新popupMenu?更新JComboBox popupMenu
实施例的程序:
public class ComboBoxUpdate extends JFrame implements MouseListener {
private JComboBox<String> box;
public ComboBoxUpdate(){
// Init
JPanel panel = new JPanel();
box = new JComboBox<String>();
box.addItem("from start");
// Add listener
Component[] comps = box.getComponents();
for(int i = 0; i < comps.length; i++)
comps[i].addMouseListener(this);
panel.add(box);
this.add(panel);
this.pack();
this.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
if(box.getItemCount() == 1){
box.removeAllItems();
box.addItem("item 1");
box.addItem("item 2");
box.addItem("item 3");
}
}
public static void main(String[] args){
new ComboBoxUpdate();
}
@Override
public void mousePressed(MouseEvent e) {}
@Override
public void mouseReleased(MouseEvent e) {}
@Override
public void mouseEntered(MouseEvent e) {}
@Override
public void mouseExited(MouseEvent e) {}
}
这使我的箱子只在第一次点击时闪烁并关闭。 工作原理:列表从开始显示“选择汽车”。点击时只有汽车出现。 – Grains 2013-05-10 08:52:10
我已经更新了我的答案 – 2013-05-10 09:03:31
很棒!谢谢! – Grains 2013-05-10 09:07:02