0

すべての文字列のリストを含むドロップダウン リストを配置する方法。そのリストの項目を選択してから読み込みボタンを押すと、その文字列にあるものだけが表示されます。これが私のコードです。実際に文字列の番号を入力し、while ステートメントを使用して文字列のデータを表示します。

実際にドロップダウンリストを配置するにはどうすればよいですか。その内容は、すべての文字列に登録された数値になります。ちょうどこのような

1 231231

2 123124

3 123124

4 232312

4 を選択して「ロード」を押すと、「232312」と表示され、データを保存するたびに、「4」が一意の番号であるように、すべての行に一意の番号が登録されます。そして232312はそれのデータです

package datasaving;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;

public class Datasaving {

    /**
     * @param args the command line arguments
     * @throws FileNotFoundException
     * @throws IOException  
     */
    public static void main(String[] args) throws FileNotFoundException, IOException {
        JPanel panel = new JPanel();
        JFrame frame = new JFrame();
        final JTextField input0 = new javax.swing.JTextField(20);
        final JTextField input1 = new javax.swing.JTextField(20);
        final JTextField out = new javax.swing.JTextField(20);
        final JTextField line = new javax.swing.JTextField(20);

        JButton save = new javax.swing.JButton("Save");
        JButton load = new javax.swing.JButton("Load");
        frame.add(panel);
        frame.setSize(240,200);
        panel.add(input0);
        panel.add(input1);
        panel.add(save);
        panel.add(line);
        panel.add(out);
        panel.add(load);

        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setVisible(true);





        save.addActionListener(new ActionListener() {
                            @Override
                            public void actionPerformed(ActionEvent e) {
                                 File file = new File("data.dat");

                            try {
                                 try (FileWriter writer = new FileWriter(file, true)) {
                                 String data0 = input0.getText();
                                 String data1 = input1.getText();
                                 writer.write(data0+":"+data1+"\n");
                                }

                                System.out.println("Data Saved");
                                } catch (IOException | HeadlessException z) {
                                JOptionPane.showMessageDialog(null, e);
                                }
                                } 
                                });
        load.addActionListener(new ActionListener() {
                            @Override
                            public void actionPerformed(ActionEvent e) {

                                 int lines = Integer.parseInt(line.getText());


                                     try {
                                 FileInputStream fs= new FileInputStream("data.dat");
                                 BufferedReader br = new BufferedReader(new InputStreamReader(fs));
                                 for(int i = 0; i < lines; ++i) {
                                 br.readLine();
                                 }
                                 out.setText(br.readLine());



                                JOptionPane.showMessageDialog(null, "Loaded");
                                } catch (   IOException | HeadlessException es) {
                                JOptionPane.showMessageDialog(null, e);
                                }
                                 }


                                });



    }
}

例: John blahblahblahblah Keith blahblahblahblah Joe blahblahblahblah Kenneth blahblahblahblah Christian blahblahblahblah 最初の単語「Names」が JList または JComboBox に追加され、名前を配列にする方法。.split(); の使い方を知っています。しかし、ファイルのすべての行でそれを実現する方法がわかりません

4

1 に答える 1

3

1) JTextField は複数行をサポートしていません。代わりにJTextAreaを試してください。テキストエリアでは、 myTextArea.append() を使用して、読みながら行を追加できます。

2) しかし、実際には、JComboBoxまたはJListが本当に探しているもののように思えます。

3) 基本的なプログラムは問題ないようです

「お役に立てば幸いです!

于 2012-08-13T23:56:16.093 に答える