Problem z oknem dialogowym

0

Witam, jestem tu nowy i java zajmuje się tylko od paru dni. Chciałem zrobić program który rozwiązuje funkcję kwadratową i rysuje jej wykres. Chciałem, aby współczynniki miały być wpisywane w oknie dialogowym po czym powstawałoby kolejne okno z wynikiem. No i mam pewien problem. Mam 3 napisy w postaci JLabel i jeden z nich za żadną cenę nie chce się przesunąć poprzez komendę lab3.setBounds. Próbowałem już wielu rzeczy, ale nic nie działa. Oznaczyłem komentarzami zbędne części kodu, żeby zobaczyć czy one w to nie ingerują, ale nie dało to żadnego skutku. Oto kod:

 package pl.javastart.first;

import java.awt.FlowLayout;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Frame extends JFrame {
	Frame() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(600, 500);
		setLocation(600, 300);
		setTitle("Funkcja");
		setVisible(true);
				
		JDialog d = new JDialog(this, "My Dialog", true);
		//d.setLayout(new FlowLayout());
		d.setSize(400, 300);
		d.setLocation(700, 400);
		d.setResizable(false);
		
		JLabel lab3 = new JLabel("Wspolczynnik c");	
		//JLabel lab1 = new JLabel("Wspolczynnik a");
		//JLabel lab2 = new JLabel("Wspolczynnik b");
		
		
		//JTextField fielda = new JTextField("", 20);
		//JTextField fieldb = new JTextField("", 20);
		//JTextField fieldc = new JTextField("", 20);
		
		//lab1.setBounds(0, 0, 200, 100);
		//System.out.println(lab1.getBounds());
		//lab2.setBounds(0, 100, 200, 100);
		//System.out.println(lab2.getBounds());
		lab3.setBounds(100, 100, 0, 0);		
		//fielda.setSize(200, 100);
		//fieldb.setSize(200, 100);
		//fieldc.setSize(300, 100);
		
		/*fielda.setBounds(200, 300, 200, 80);
		fieldb.setBounds(200, 200, 200, 80);
		fieldc.setBounds(200, 100, 200, 80); */
		
		//d.add(lab1);
		//d.add(lab2);
		d.add(lab3);
		/*d.add(fielda);
		d.add(fieldb);
		d.add(fieldc); */
			
		d.show();
	}
}		
1

Z tego co wiem aby setBounds działało setLayout(null);
ale wtedy musisz ustawiać pozycje wszystkich elementów ;p.

0

Tak wiem, dlatego dałem layout jako komentarz, żeby to nie działało, żebym mógł ręcznie ustawiać. Wszystko mogę ustawić bez problemu oprócz tego jednego napisu lab3 z jakiegoś powodu.
Edit: Zrobiłem jak napisałeś, dałem layout(null) i wszystko działa. Dzięki wielkie :D

0

JFrame ma defaultowo BorderLayout dlatego nie działało bez ustawienia null.

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