从组合框中获取所选项目

时间:2016-04-13 16:49:32

标签: java swing

我有一个包含数组数据的组合框。我希望能够在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());

1 个答案:

答案 0 :(得分:0)

您需要JComboBox#getSelectedItem()而不是JComboBox#getSelectedIndex()。由于它是一个字符串,因此应该在文件中打印。

  

返回当前所选项目。

不要忘记在您的ItemListener

中使用JComboBox