我有一个包含数组数据的组合框。我希望能够在JComboBox
中获取所选名称并将其打印到文本文件中。问题是该名称不会写入文本文件。
数组代码:
public class readfiles {
String [] names = new String[15];
int i = 0;
private Scanner readNames;
//Opens the file
public void openFile() {
try {
readNames = new Scanner(new File("ChildName.txt"));
} catch (Exception e) {
System.out.println("Could not locate the data file!");
}
}
//Reads the names in the file
public void readFile() {
while(readNames.hasNext()) {
names[i] = readNames.next();
System.out.println(names[i]);
i++;
}
}
//Closes the file
public void closeFile() {
readNames.close();
}
}
ComboBox代码:
//JComboBox for selecting child
JLabel selectChildName = new JLabel("Please Select Your Child:");
sPanel.add(selectChildName);
readfiles readNames = new readfiles();
readNames.openFile();
readNames.readFile();
readNames.closeFile();
JComboBox<String> selectChild = new JComboBox<String>(readNames.names);
sPanel.add(selectChild);
最后,我正在做的是将所选名称写入文本文件。
bw.write(selectChild.getSelectedIndex());
更新
用于:
bw.write(selectChild.getSelectedItem().toString());
答案 0 :(得分:0)
您需要JComboBox#getSelectedItem()
而不是JComboBox#getSelectedIndex()
。由于它是一个字符串,因此应该在文件中打印。
返回当前所选项目。
不要忘记在您的ItemListener
JComboBox