我有一個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