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