0

jframeを使用してファイルを作成し、フィールドに追加するプログラムを作成しましたが、正しく機能しません。ありがとうございます!!

ファイルを読み取り、フィールドのフルネームと顧客番号を取得し、jframe を使用してフィールドをもう 1 つ追加します

フルネームと顧客番号は正常に機能していますが、jframeが正しく機能していません..だから私を助けてください...

実際には、垂直スクロールダウンも必要です。助けてください..

のファイルに6つのレコードがあるとします..

私はjframeに入れる必要があります:

00240000844928953504
00240000844928953505
00240000844928953506
00240000844928953507
00240000844928953508
00240000844928953509

ファイル出力は正しくありません。実際には、6 つのスキャナー行すべてがすべての行に出力されます。

custID,fullname, 00240000844928953504
00240000844928953505
00240000844928953506
00240000844928953507
00240000844928953508
00240000844928953509

custID,fullname, 00240000844928953504
00240000844928953505
00240000844928953506
00240000844928953507
00240000844928953508
00240000844928953509

このように!!:(

こうあるべきだ!!

custID,fullname,00240000844928953504
custID,fullname,00240000844928953505
....

これが私のコードです!!

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;


public class scanner {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub



        final JFrame frame = new JFrame("Scan Here: ");
        JPanel panel = new JPanel();

        final JTextArea text = new JTextArea(20, 40);
        JButton button = new JButton("Enter");

        frame.add(panel);
        panel.add(text);
        panel.add(button);

        button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {


         BufferedReader br = null;
         BufferedWriter lbwp = null;


         String scanner = (text.getText());
         System.out.println(scanner);


         try {


             File folderall = new File("FilesIn");
             File[] BFFileall = folderall.listFiles();

             for (File file : BFFileall) {

                 String str = file.getName();

                 String reprintbwletterbwpca = ("FileOut" + "\\" + str);
                 lbwp = new BufferedWriter(new FileWriter(reprintbwletterbwpca));
                 lbwp.write("\"CUSTID\",\"FullName\",\"ONECODE\"," + "\n");


                 br = new BufferedReader(new FileReader(file));

                 String line;
                 line = br.readLine();

                 while ((line = br.readLine()) != null) {
                    String[] actionID = line.split("\\\",\"");

                    String custnumber = actionID[3];
                    String fullname = actionID[18];
                    String add1 = actionID[19];


                    lbwp.write("\"" + custnumber +  "\",\"" + fullname+ "\"," + "\"" + scanner + "\"," + "\n");

                 }
                 lbwp.close();


             }

         } catch(Exception e1) {
                e1.printStackTrace();
            }


         frame.dispose();
            }});
        frame.setSize(500, 400);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



    }

}

私を助けてください!!

4

1 に答える 1

1

ここには 2 つのリストがあります。

  • 読み込んでいるファイルからのエントリのリスト。各エントリは「行」文字列で読み取られます。
  • 「\n」で区切られた JTextArea に入力した値のリスト。

まず、両方のリストに同じ数のエントリがあるかどうかを確認する必要があります。また、「\n」をセパレータとして使用して文字列スキャナを分割する必要があります。

行ごとに読んでいるときに、エントリの数が等しいかどうかをチェックしない次のコードを使用することもできます。

int index = 0;
String[] ids = scanner.split("\n");
while ((line = br.readLine()) != null) {
    String[] actionID = line.split("\\\",\"");

    String custnumber = actionID[3];
    String fullname = actionID[18];
    String add1 = actionID[19];

    if (ids.length > index) {
         lbwp.write("\"" + custnumber +  "\",\"" + fullname+ "\"," + "\"" + ids[index] + "\"," + "\n");
    } else {
        lbwp.write("\"" + custnumber +  "\",\"" + fullname+ "\"\n");
    }
    index++;
}

編集:条件を置き換えます

于 2013-09-11T15:31:48.080 に答える