2

JFrameを作成し、テキストフィールドとボタンを配置しました。テキストフィールドに、テキストファイルから読み取った名前を入力しました。ボタンをクリックして、名前とその他の情報を入力したい既知のウィンドウを開きます。同じファイルから。

これが私のコードです:これは私のメインフレームです

   package Frontend;

   import Business.ShowDetails;
   import model.*;
   import java.awt.*;
   import java.awt.event.*;
   import java.io.*;
   import java.util.*;
   import javax.swing.*;

 public class Gui {
  //String file=" ";
  private JFrame frame;
  private JPanel panel1 ;
  private JPanel panel2;
  private JPanel panel;
  private JTextField nume1;
  private JTextField nume2;
  private JTextField nume3;
  private JTextField nume4;
  private JTextField nume5;
  private JButton edit1;
  private JButton edit2;
  private JButton edit3;
  private JButton edit4;
  private JButton edit5;
  private final String file = "Persoane.txt";


public Gui(){
   fereastra();
   readFile(file);
}

public void fereastra(){

    frame = new JFrame();
    panel = new JPanel(new FlowLayout());
    panel1 = new JPanel(new GridLayout(5,2,1,7));
    panel2 = new JPanel(new GridLayout(5,2,1,1));

    nume1 = new JTextField(15);
    nume2 = new JTextField(15);
    nume3 = new JTextField(15);
    nume4 = new JTextField(15);
    nume5 = new JTextField(15);

    edit1 = new JButton("Edit");
    edit2 = new JButton("Edit");
    edit3 = new JButton("Edit");
    edit4 = new JButton("Edit");
    edit5 = new JButton("Edit");

    panel1.add(nume1);
    panel2.add(edit1);
    panel1.add(nume2);
    panel2.add(edit2);
    panel1.add(nume3);
    panel2.add(edit3);
    panel1.add(nume4);
    panel2.add(edit4);
    panel1.add(nume5);
    panel2.add(edit5);

    ButtonHandler handler = new ButtonHandler();    
    edit1.addActionListener(handler);                             
    edit2.addActionListener(handler);
    panel.add(panel1);
    panel.add(panel2);
    frame.add(panel);
    frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    frame.setSize(300, 200);
    frame.setVisible(true);
}
public String readFile(String filename){
    try{
         String line="";
         Persoana p ;
         BufferedWriter bw = null;
         ArrayList<Persoana> listOfPersons;

          //creez o lista de persoane
         listOfPersons = new ArrayList<Persoana>();
         //citesc fisierul Persoane.txt
        FileReader  file1 =new FileReader(filename);
         BufferedReader br1 = new BufferedReader(file1);

        while((line = br1.readLine())!= null){
          //elimin prima linie din fisier

         if(!line.trim().contains("ID")){
         String[] attributes = line.split(";");// separ fiecare linie in tokenuri

            p = new Persoana(); // make a new person
            p.setId(Integer.parseInt(attributes[0]));
            p.setNume(attributes[1]);
            p.setPrenume(attributes[2]);
            p.setDataNasterii(attributes[3]);
            p.setProfesie(attributes[4]);

            listOfPersons.add(p);
         }

      }
         int i = 0;
        while (i < listOfPersons.size()){
            if(i == 0){
                 p = listOfPersons.get(i);
                 nume1.setText(p.getNume() + " " +p.getPrenume());
                 nume1.getText();
            }
            if(i == 1){
                 p = listOfPersons.get(i);
                 nume2.setText(p.getNume() + " " +p.getPrenume());
                 nume2.getText();
            }
             if(i == 2){
                 p = listOfPersons.get(i);
                 nume3.setText(p.getNume() + " " +p.getPrenume());
                 nume3.getText();
            }
             if(i == 3){
                 p = listOfPersons.get(i);
                 nume4.setText(p.getNume() + " " +p.getPrenume());
                 nume4.getText();
            }
             if(i == 4){
                 p = listOfPersons.get(i);
                 nume5.setText(p.getNume() + " " +p.getPrenume());
                 nume5.getText();
            }

             i++;
         }
         br1.close();
    }
    catch(IOException ex){
        System.out.println("Error opening file.");
        System.exit(1);
    }
   return file;
}

  // inner class for button event handling
    private class ButtonHandler implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                    if (e.getSource() == edit1) {
                            new ShowDetails();

                    }
                    if (e.getSource() == edit2) {
                            new ShowDetails();
                    }
        }
}
}

これは私の2番目のcclassです:

  package Business;

  import Frontend.*;
   import javax.swing.*;
  import java.awt.*;
  import java.awt.event.*;




  public class ShowDetails extends JFrame{

  Gui gui;


  public ShowDetails(){

    this.gui = gui;
    fereastra();
}

public void fereastra(){
    JPanel panel = new JPanel(new GridLayout(2, 2));
    JTextArea text = new JTextArea();
    text.setEditable(true);
    text.setText(gui.readFile("Persoane.txt"));
    text.getText();
    panel.add(text);

    getContentPane().add(panel);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //setLocation(50,50);
setSize(300,200);
setResizable(false);
   // setVisible(true);
    show();
}


}
4

1 に答える 1

3
  1. フレームの親でJFrameポップアップ ウィンドウを使用する場合は、新しい を作成しないでください。JDialog
  2. を使用しないでくださいshow();。これは長い間減価償却されてきた方法です。それを削除してコメントを外して ください。// setVisible(true);
  3. なぜ2つJButtonsが同じものを作るのですか?
  4. FileIO値または引数を一方から他方に渡すために使用するのはなぜObjectですか?
  5. CardLayoutポップアップウィンドウを作成する代わりに使用することをお勧めします。
  6. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fromclass ShowDetailsは現在の JVM インスタンスを閉じます。
  7. JFrameまたはJDialogまたは拡張しないでくださいJWindow
于 2012-05-14T17:59:07.303 に答える