簡體   English   中英

無法從文件讀取數據到JComboBox

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM