将字符串添加到组合框java

时间:2014-12-28 13:33:03

标签: java swing combobox

我正在尝试向java组合框添加多个项目,但是我的只显示列表中的第一个项目。有帮助吗?这是我自己的项目,用户可以从下拉列表中选择最近的图像,它将打开。最后,它将像一个带有下拉菜单的绘图应用程序。

public class ComboBoxExample extends JFrame 
implements ItemListener {

private JLabel display;  
private JComboBox<String> box;
private String[] distros;


public ComboBoxExample() {

    initUI();
}

private void initUI() {
    String path = "."; 

    String files;
    File folder = new File(path);
    File[] listOfFiles = folder.listFiles(); 

    for (int i = 0; i < listOfFiles.length; i++) 
    {

     if (listOfFiles[i].isFile()) 
     {
     String files1 = listOfFiles[i].getName();
     System.out.println(files1);

    distros = new String[] {files1};

    Container pane = getContentPane();
    GroupLayout gl = new GroupLayout(pane);
    pane.setLayout(gl);        

    box = new JComboBox<>(distros);
    box.addItemListener(this);

    display = new JLabel("");

    gl.setAutoCreateContainerGaps(true);

    gl.setHorizontalGroup(gl.createSequentialGroup()
            .addComponent(box,
                    GroupLayout.DEFAULT_SIZE,
                    GroupLayout.DEFAULT_SIZE,
                    GroupLayout.PREFERRED_SIZE)
            .addGap(20)
            .addComponent(display)
    );

    gl.setVerticalGroup(gl.createParallelGroup(BASELINE)
            .addComponent(box, GroupLayout.DEFAULT_SIZE,
                    GroupLayout.DEFAULT_SIZE,
                    GroupLayout.PREFERRED_SIZE)
            .addComponent(display)
    );

    pack();

    setTitle("JComboBox");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);}}

}

@Override
public void itemStateChanged(ItemEvent e) {

    if (e.getStateChange() == ItemEvent.SELECTED) {
        display.setText(e.getItem().toString());
    }
}    

public static void main(String[] args) {

    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            ComboBoxExample ex = new ComboBoxExample();
            ex.setVisible(true);
        }
    });
}
}

1 个答案:

答案 0 :(得分:0)

您正在为每个文件反复创建整个指南。因此,您只能在框中获得一个字符串。我建议你将初始化方法分成几个较小的方法。这有助于您了解实际情况。