nowe okno JFrame

0
public odczyt_txt() {
        try{
           BufferedReader in = new BufferedReader(new FileReader("C:/..../wynik.txt"));
           String str;
               while ((str = in.readLine()) != null) {
                    jtout.append(str+"\n");
               }
           in.close();

        }catch (IOException e) {}

    }

Po wykonianiu takiego kodu (wciśnięciu buttona) do JTextArea ma być wpisany tekst z pliku - i jest, problem w tym, że otwiera mi sie nowe okno identyczne jak pierwotne już w wypisanym tekstem. I teraz mam dwa okna w tym jedno puste.
Gdzie mam wrzucić repaint(); albo jak ogólenie wygląda schemat jego urzycia.
Z góry thx.

0

A możesz napisać pozostałą część kodu

0

chodzi o to że ta klasa dziedziczy po JFrame i pewnie dlatego po wywołaniu
jtout.append(str+"\n");
otwiera sie nowe okno.

Jak temu zaradzić - jak nie zrobie dziedziczenia to nie skompiluje - da sie to obejść ( wrzucić do jednej klasy )

0

Z tego co zrozumiałem. To masz jakąś klasę okna dziedziczącą po JFrame:


```cpp
class MyFrame extends JFrame{
private JTextArea jtout;
private JButton myButton;
public MyFrame();
public odczyt_txt();
}

To w ten sposób jakim cudem ci dwa ona się wyświetlają po naciśnięciu przyciski.
0
public class odczyt_txt extends okno implements Runnable {
    public void run(){
        try{
           Thread.sleep(1000);
        }catch(InterruptedException exc) {return;}
    }
    public odczyt_txt() {
        try{
           BufferedReader in = new BufferedReader(new FileReader("C:/../wynik.txt"));
           String str;
               while ((str = in.readLine()) != null) {
                    jtout.append(str+"\n");
               }
        in.close();
        }catch (IOException e) {}

    }

}

a w clasie okno jest cały JFrame i z pod niego wywoływane jest odczyt_txt do jtextarea.

0

Zrobiłem coś takiego:

public class Okno extends JFrame {
    public static final long serialVersionUID = 198327928L;

    private JTextArea area;

    private JButton button;

    public Okno() {
        setSize(800, 600);
        setLocationRelativeTo(null);
        getContentPane().setLayout(new BorderLayout());
        button = new JButton("button");
        area = new JTextArea(10, 10);
        getContentPane().add(button, BorderLayout.NORTH);
        getContentPane().add(area, BorderLayout.CENTER);
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    BufferedReader in = new BufferedReader(new FileReader("conf.xml"));
                    String str;
                    while ((str = in.readLine()) != null) {
                        area.append(str + "\n");
                    }
                    in.close();

                } catch (IOException ex) {
                }
            }
        });
    }

    public static void main(String[] args) {
        new Okno().setVisible(true);
    }
}

I normalnie mi się wyświetla w textarea po naciśnięciu buttona text z pliku. Napisz pozostałą część kodu bo tam masz jakiś błąd

0

Klasa okno :

public class okno extends JFrame{
    JTextArea jtout;
    public JFrame jf;
      okno(){

        JTextField jt1, jt2;
    String disp = "";
    //TextHandler handler  = null;

       JFrame jf = new JFrame("oooo");
       Container kontener = jf.getContentPane();
       kontener.setLayout(new FlowLayout());
       JButton jb = new JButton("Uo");
       JButton jb1 = new JButton("Wo");
       JButton jb2=new JButton("Zao");
        jt2 = new JTextField("Program Uruchomi aplikacje R", 20);
       jt2.setEditable(false);
       jtout = new JTextArea(20, 60);
       jtout.setCaretPosition(jtout.getDocument().getLength());
       jtout.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));

       JScrollPane scroller = new JScrollPane(jtout);
       scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
       jf.setLocation(200,200);
       jf.setSize(800,500);
       jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
       jf.add(jt2);
       //jf.add(jt1);
       jf.add(jb);
       jf.add(jb1);
       jf.add(jb2);
       jf.add(scroller);

       kontener.setBackground(Color.gray);
       kontener.setForeground(Color.YELLOW);
       jf.setVisible(true);
       jf.validate();

       jb.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                                        System.out.println("naciśnięte - Uruchom_R");

                                        jtout.append("LICZY czekaj ..."); <ort>I TO SIE NIE POKAZUJE ODRAZU!!</ort>
                                        Uruchom uruchom = new Uruchom();
                                        Thread watek1 = new Thread(uruchom);
                                        watek1.run();

                                        //odczyt_txt();
//                                        odczyt_txt tekst = new odczyt_txt();
//                                        Thread watek2 = new Thread(tekst);
//                                        watek2.run();
                                        }
                });
       jb1.addActionListener(new ActionListener() {
                                        public void actionPerformed(ActionEvent evt) {
                                        System.out.println("naciśnięte - Wyświetl haetmapę");
                                        //new pobraz(sciezka);
                                        System.out.println("CZEKAM 1 sekunde "+"\n");
                                        pobraz obr = new pobraz(sciezka);
                                        Thread watek = new Thread(obr);
                                        watek.run();

                                    }
                });                         
       jb2.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent evt) {
                                        System.exit(0);
                                    }
                });

 }
}

a odczyt jest w klasie:

public class odczyt_txt extends okno implements Runnable {
    public void run(){
        try{
           Thread.sleep(1000);
        }catch(InterruptedException exc) {return;}
    }
    public odczyt_txt() {
        try{
           BufferedReader in = new BufferedReader(new FileReader("C:/..../wynik.txt"));
           String str;
               while ((str = in.readLine()) != null) {
                    jtout.append(str+"\n");
               }
        in.close();
        }catch (IOException e) {}

    }

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0