如何从文本文件中填充Java中的两个组合框?

时间:2017-05-14 12:38:43

标签: java swing combobox jcombobox

我正在尝试从数据中填充两个组合框,但不知道如何在两个组合框之间划分这些数据。现在,数据填充在两个组合框中。

这是我的数据文本文件:

[Gates]
value1
value2
value3

[Mids]
customer1
customer2

这是我在Java Swing Gui应用程序中的代码:

private void populateCombos() throws FileNotFoundException {

    JFileChooser fileChooser = new JFileChooser();
    fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
    fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
    int result = fileChooser.showOpenDialog(frmGottApplication);

    BufferedReader input=new BufferedReader(new FileReader(fileChooser.getSelectedFile()));
    if (result == JFileChooser.APPROVE_OPTION) {
        selectedFile = fileChooser.getSelectedFile();
        textFieldLoadConfig.setText(selectedFile.getAbsolutePath());
        lblConfRes.setText("Loaded " + selectedFile.getAbsolutePath().toString());
    } else {
        lblConfRes.setText("You didn't load...");
    }
    List<String> strings = new ArrayList<String>();
    try {
        String line = null;
        try {
            while ((line = input.readLine()) != null) {
                strings.add(line);
            }
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    } finally {
        try {
            input.close();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
    String[] lineArrayGates = strings.toArray(new String[] {});

    comboBoxGate.removeAllItems();
    comboBoxMid.removeAllItems();

    for (String str : lineArrayGates) {
        comboBoxGate.addItem(str);
        comboBoxMid.addItem(str);
    }
}

从代码中可以看出,我正在从外部文本文件中读取数据,然后尝试将其加载到两个不同的组合框中。但是如何编写将门的值除以第一个组合而将中间值除以第二个组合的代码。 有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:1)

问题从文件及其内容开始,定义一个格式更舒适的属性文件...你可以使用json,xml,yaml或只是属性...

我将使用旧学校java属性

进行示例

文件:

  

活门=值1,值2,值3

     

的MID = customer1表,customer2表

然后将其作为属性读取,将其拆分为StringArray并使用

填充Boxes
public static void main(String[] args) {
Properties prop = new Properties();
InputStream input = null;

try {
    input = new FileInputStream("./file2.txt");
    prop.load(input);
    String[] gates = prop.getProperty("Gates").split(",");
    String[] mids = prop.getProperty("Mids").split(",");
    JFrame myJFrame = new JFrame();
    myJFrame.setTitle("Example");
    myJFrame.setSize(250, 250);
    JPanel panel = new JPanel();

    JComboBox<String> myComboGates = new JComboBox<>(gates);
    JComboBox<String> myComboMids = new JComboBox<>(mids);
    panel.add(myComboGates);
    panel.add(myComboMids);

    myJFrame.add(panel);
    myJFrame.setVisible(true);

} catch (IOException ex) {
    ex.printStackTrace();
} finally {
    if (input != null) {
    try {
        input.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    }
}

}

结果是2个组合,其中2个不同类型的信息来自道具。文件:enter image description here