nowe okno JFrame

Odpowiedz Nowy wątek
2007-07-25 18:53
nasqu
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.

Pozostało 580 znaków

2007-07-26 09:46
0

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


"Jam częścią tej siły, która wiecznie zła pragnąc, wiecznie czyni dobro"
J.W. von Goethe "Faust"

Pozostało 580 znaków

2007-07-26 10:17
nasqu
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 )

Pozostało 580 znaków

2007-07-26 10:24
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.

"Jam częścią tej siły, która wiecznie zła pragnąc, wiecznie czyni dobro"
J.W. von Goethe "Faust"

Pozostało 580 znaków

2007-07-26 10:33
nasqu
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.

Pozostało 580 znaków

2007-07-26 10:34
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


"Jam częścią tej siły, która wiecznie zła pragnąc, wiecznie czyni dobro"
J.W. von Goethe "Faust"

Pozostało 580 znaków

2007-07-26 12:42
nasqu
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) {}

    }

}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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