我正在制作一个GUI,其中有6个组合框,我从文本文件读取数据到这些
组合框。我的文本文件具有3行和2列,因此当我读取数据时,只有前2个组合框填充有文本文件第3行而不是第1行的值的数据,其余的组合框仍然保留空。我的文本文件包含6个值,应在6个组合框中显示。请帮助
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class Read extends JPanel {
public Read() {
JPanel buttonPanel = new JPanel();
add(buttonPanel);
buttonPanel.setLayout(new GridLayout(0, 2, 5, 5));
JComboBox comboBox1 = new JComboBox();
comboBox1.addItem("1");
comboBox1.addItem("2");
comboBox1.addItem("4");
JComboBox comboBox2 = new JComboBox();
comboBox2.addItem("1");
comboBox2.addItem("2");
comboBox2.addItem("4");
JComboBox comboBox3 = new JComboBox();
comboBox3.addItem("1");
comboBox3.addItem("2");
comboBox3.addItem("4");
JComboBox comboBox4 = new JComboBox();
comboBox4.addItem("1");
comboBox4.addItem("2");
comboBox4.addItem("4");
JComboBox comboBox5 = new JComboBox();
comboBox5.addItem("1");
comboBox5.addItem("2");
comboBox5.addItem("4");
JComboBox comboBox6 = new JComboBox();
comboBox6.addItem("1");
comboBox6.addItem("2");
comboBox6.addItem("4");
buttonPanel.add(comboBox1);
buttonPanel.add(comboBox2);
buttonPanel.add(comboBox3);
buttonPanel.add(comboBox4);
buttonPanel.add(comboBox5);
buttonPanel.add(comboBox6);
try{
InputStream ips=new FileInputStream("tl.txt");
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String line;
while ((line=br.readLine())!=null) {
String[] s = line.split(" ");
comboBox1.setSelectedItem(s[0]);
comboBox2.setSelectedItem(s[1]);
}
br.close();
}
catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
Read a = new Read();
JFrame f = new JFrame("");
f.getContentPane().add(a);
f.setSize(300,200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
文本文件
2 4
1 2
4 1
最佳答案
声明一个JCombobox
数组,并将您所有的JCombobox存储在该数组中,如下所示,
JComboBox[] comboBoxs = new JComboBox[6];
comboBoxs[0] = comboBox1;
comboBoxs[1] = comboBox2;
comboBoxs[2] = comboBox3;
comboBoxs[3] = comboBox4;
comboBoxs[4] = comboBox5;
comboBoxs[5] = comboBox6;
声明
Arraylist
并存储您从文件中读取的数据,如下所示,// Other code goes here.
ArrayList<String> list = new ArrayList<String>();
String line;
while ((line=br.readLine())!=null) {
String[] s = line.split(" ");
list.add(s[0]);
list.add(s[1]);
}
br.close();
最后,遍历每个
Arraylist
并填充组合框。for(int i = 0; i < comboBoxs.length; i++) {
comboBoxs[i].setSelectedItem(list.get(i));
}
这应该很好。