2014-01-14 71 views
0

使用JComboBox的更新應用程序的同時運行

list0.setModel(new DefaultComboBoxModel(toTable.data)); 

我可以更新整個JComboBox中(列表0),......但我想幾行添加到它(需要有幾個不同的位置從選擇我的列表)。當我使用這個命令時,它會進行更新,但每次都在JComboBox的第一行。這意味着我最終只能在我的JComboBox中擁有一個位置。

我試圖

list0.setModel(new DefaultComboBoxModel(toTable.data[x])); 

,但它不工作。有任何想法嗎?

(線X-數)

回答

3

我,不準確肯定你問什麼,但看起來你只是想動態添加元素爲JComboBox。你似乎有正確的想法,使用DefaultComboBoxModel。要添加新的元素列表,使用

model.addElement(E object) 

更多方法請參見DefaulComboBoxModel

下面是一個簡單的例子。只需在文本字段中輸入一些內容,然後按回車即可。下面是我用

@Override 
public void actionPerformed(ActionEvent ae) { 
    String text = textField.getText(); 
    model.addElement(text); 
    comboBox.setSelectedItem(text); 
    textField.setText(""); 
} 

這裏完整的程序

import java.awt.BorderLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.DefaultComboBoxModel; 
import javax.swing.*; 
public class CBoxModelDemo { 

    public CBoxModelDemo() { 
     JFrame frame = new JFrame("Combo Box Model"); 

     String[] list = {"Hello 1", "Hello 2", "Hello 3", "Hello 4"}; 
     final DefaultComboBoxModel model = new DefaultComboBoxModel(list); 
     final JComboBox comboBox = new JComboBox(model); 
     frame.add(comboBox, BorderLayout.NORTH); 

     final JTextField textField = new JTextField(30); 
     frame.add(textField, BorderLayout.SOUTH); 
     frame.add(new JLabel("Type something, then press enter", JLabel.CENTER)); 

     textField.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent ae) { 
       String text = textField.getText(); 
       model.addElement(text); 
       comboBox.setSelectedItem(text); 
       textField.setText(""); 
      } 
     }); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       new CBoxModelDemo(); 
      } 
     }); 
    } 
} 

enter image description here

+0

尼斯回答的重要代碼。你是如何創建動畫的? – keuleJ

+0

@keulej我使用開源[Cam Studio](http://camstudio.org/)來捕捉視頻。保存爲'.avi'。然後將其導入Photoshop並保存爲網頁。而已。它會自動保存爲動畫GIF –

相關問題