JTextField nie działa

0

Witam,

mam następujący problem. Tworzę proste GUI w Javie przy użyciu swing i wszystko jest ładnie i ok: tworze jframe, ustawiam layout, tworze jpanele i je dodaje do jframe, podobnie z jlabel. Problem pojawia się przy próbie użycia JTextField, po utworzeniu obiekut klasy (samym utworzeniu bez dodawania nigdzie) przy uruchamianiu znika mi wszystko z okna jframe.

Ma ktoś może pomysł dlaczego tak się dzieję?
Bardzo proszę o pomoc.

pozdrawiam
Antek

0

Mam pomysł. Masz błędy w kodzie, niestety nie wiem jakie.
Bądź tak łaskaw i udostępnij kod.

0

racja, mój kod ponizej:

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


public class Formularz extends JFrame {
	
	Formularz()
	{		
		setLayout(new GridLayout(4,1));
		setSize(400, 400);
		setVisible(true);
		
		JPanel panel1,panel2,panel3,panel4;
		
		panel1 = new JPanel();
		panel2 = new JPanel();
		panel3 = new JPanel();
		panel4 = new JPanel();

		//JTextField text1 = new JTextField(20);
		
		JLabel eytk1 = new JLabel("Etykieta1");
		JLabel eytk2 = new JLabel("Etykieta1");
		
		panel1.add(eytk1);
		panel3.add(eytk2);
		
		add(panel1);
		add(panel2);
		add(panel3);
		add(panel4);
		setDefaultCloseOperation(3);
	}

	public static void main(String args[])
	{
		new Formularz();
	}
}

Gdy kod jest takiej postaci to wszystko jest ok, po uruchomieniu programu pojawia się okno i w prawidłowych miejscach pojawiają się etykiety.
Gdy odkomentuje fragment z tworzeniem nowego obiektu JTextField to po uruchomieniu programu pojawia się tylko okno, bez żadnych elementów.

0

Za szybko pokazujesz okno. Wyświetlasz je, gdy nie jest jeszcze skonstruowane. Za magiczna stałą "3" będziesz się smażył w piekle.

                setLayout(new GridLayout(4,1));
                setSize(400, 400);

                JPanel panel1,panel2,panel3,panel4;

                panel1 = new JPanel();
                panel2 = new JPanel();
                panel3 = new JPanel();
                panel4 = new JPanel();

                JTextField text1 = new JTextField(20);

                JLabel eytk1 = new JLabel("Etykieta1");
                JLabel eytk2 = new JLabel("Etykieta1");

                panel1.add(eytk1);
                panel3.add(eytk2);

                add(panel1);
                add(panel2);
                add(panel3);
                add(panel4);
                setVisible(true);
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
0

dziękuję bardzo za pomoc :)

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