내가 JComboBoxes에 텍스트 파일에서 파일을 읽을 수있는 UI를 확인하고 나머지는 동안 첫 번째 콤보 상자가 파일에서 업데이트지고 JTextFields.Only에서 결과를 표시하려고에 파일에서 데이터를 읽을 수 없습니다 파일에서 업데이트되지 않습니다.는 JComboBox에
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
comboBox1.setSelectedItem (s [1]); s [1] = 54; 콤보 상자 1에는 항목 54가 있습니다. 여기에 문제가 있다고 생각합니다. 추가 comboBox1.addItem ("54"); 두 번째 두 번째 콤보 박스가 업데이트 될지 확인하십시오. 존재하지 않는 setSelected 항목을 시도합니다. –
감사합니다. @getlost –
@getlost 내 텍스트 파일에 3 행 4 열이있는 경우 파일에서 데이터를 콤보 상자로 읽는 방법 . –