0
我想將多個項目添加到java組合框,但是我的列表中只顯示第一個項目。任何幫助?這是爲我自己的項目,用戶將能夠從下拉列表中選擇最近的圖像,並打開它。最後它會像一個帶有下拉菜單的繪畫應用程序。將字符串添加到組合框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);
}
});
}
}
你應該考慮不實現Listener接口,而是使用匿名嵌套類。 –