[英]Cannot read data from file to JComboBox
我正在嘗試制作一個ui,其中我將文本文件中的文件讀取到JComboBoxes並在JTextFields中顯示結果。只有第一個組合框正在從文件中更新,而其余的組合框都沒有從文件中更新。
這是我的代碼:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class Main1 extends JPanel
{
public Main1() {
JPanel buttonPanel = new JPanel();
add(buttonPanel);
buttonPanel.setLayout(new GridLayout(0, 4, 5, 5));
JTextField field1 = new JTextField(5);
field1.setEditable(false);
buttonPanel.add(field1);
JTextField field2 = new JTextField(5);
field2.setEditable(false);
buttonPanel.add(field2);
JTextField field3 = new JTextField(5);
field3.setEditable(false);
buttonPanel.add(field3);
JTextField field4 = new JTextField(5);
field4.setEditable(false);
buttonPanel.add(field4);
JComboBox comboBox = new JComboBox();
comboBox.setEditable(true);
comboBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JComboBox comboBox = (JComboBox) event.getSource();
field1.setText((String) comboBox.getSelectedItem());
}
});
JComboBox comboBox1 = new JComboBox();
comboBox1.addItem("1");
comboBox1.addItem("2");
comboBox1.addItem("4");
comboBox1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JComboBox comboBox1 = (JComboBox) event.getSource();
Object selected = comboBox1.getSelectedItem();
if(selected.toString().equals("1"))
field2.setText("3");
else if(selected.toString().equals("2"))
field2.setText("6");
else if(selected.toString().equals("4"))
field2.setText("12");
}
});
JComboBox comboBox2 = new JComboBox();
comboBox2.addItem("1");
comboBox2.addItem("2");
comboBox2.addItem("4");
comboBox2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JComboBox comboBox2 = (JComboBox) event.getSource();
Object selected = comboBox2.getSelectedItem();
if(selected.toString().equals("1"))
field3.setText("1");
else if(selected.toString().equals("2"))
field3.setText("2");
else if(selected.toString().equals("4"))
field3.setText("4");
}
});
JComboBox comboBox3 = new JComboBox();
comboBox3.addItem("1");
comboBox3.addItem("2");
comboBox3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
JComboBox comboBox3 = (JComboBox) event.getSource();
Object selected = comboBox3.getSelectedItem();
if(selected.toString().equals("1"))
field4.setText("1");
else if(selected.toString().equals("2"))
field4.setText("2");
}
});
buttonPanel.add(comboBox);
buttonPanel.add(comboBox1);
buttonPanel.add(comboBox2);
buttonPanel.add(comboBox3);
try{
InputStream ips=new FileInputStream("test.txt");
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);
String line;
while ((line=br.readLine())!=null) {
String[] s = line.split(" ");
comboBox.setSelectedItem(s[0]);
comboBox1.setSelectedItem(s[1]);
comboBox2.setSelectedItem(s[2]);
comboBox3.setSelectedItem(s[3]);
}
br.close();
}
catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
Main1 a = new Main1();
JFrame f = new JFrame();
f.getContentPane().add(a);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
}
文本文件:
14 54 89 56
文件列表中的值均未包含在組合框列表中,因此除第一個以外均未出現。 發生這種情況是因為這是唯一可編輯的。 來自文檔
如果anObject不在列表中,並且組合框不可編輯,則不會更改當前選擇
只需在應用程序啟動時將所有期望的項目添加到組合框模型即可。
您是否在流閱讀器中將此cos指定為“”而不是“ \\ n”? 我的意思是在拆分功能
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.