2014-10-14 3 views
0

내가 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 
+0

comboBox1.setSelectedItem (s [1]); s [1] = 54; 콤보 상자 1에는 항목 54가 있습니다. 여기에 문제가 있다고 생각합니다. 추가 comboBox1.addItem ("54"); 두 번째 두 번째 콤보 박스가 업데이트 될지 확인하십시오. 존재하지 않는 setSelected 항목을 시도합니다. –

+1

감사합니다. @getlost –

+0

@getlost 내 텍스트 파일에 3 행 4 열이있는 경우 파일에서 데이터를 콤보 상자로 읽는 방법 . –

답변

1

없음은 그래서 아무도 첫 번째를 제외하고 표시되지 콤보 상자 목록에 포함되지 않습니다

여기 내 코드입니다. 이것은 편집 가능한 유일한 이유이기 때문에 발생합니다. docs

anObject가리스트에없고, combobox가 편집 불가의 경우에서, 단순히 응용 프로그램 시작에 콤보 상자 모델에 모든 예상 항목을 추가 현재 선택

변경되지 않습니다.

+0

내 텍스트 파일에 3 행 4 열이있는 경우 콤보 상자로 읽는 방법. 두 번째 줄과 세 번째 줄을 읽고 콤보 박스에 표시하는 방법. –

+0

그건 새로운 질문처럼 들리네. :) – Reimeus

0

이것은 스트림 판독기에서 "\ n"대신 ""를 사용했습니다. Split 함수의 의미입니다.

관련 문제