SWING rozmieszczenie komponentów

0

Piszę programik do rozwiązywania układu równań liniowych. Nie mogę poradzić sobie z rozmieszczeniem komponentu na formie. Czy mógłby ktoś uzupełnić mój kod? Aby rozkład był bardzij intuicyjny i przypominał układ równań?
np:

ax + by = c
dx + ey = d

package pakietJava;

import java.awt.BorderLayout;

import javax.swing.*;

public class okno extends JFrame {

public okno() {
	super("Podaj współczynniki układu równań");
	setSize(500, 300);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	JPanel panel = new JPanel();
	JLabel tytul = new JLabel("Układ równań liniowych postaci:");
	
	
	//równanie 1
	
	JTextField a = new JTextField("a    ");
    JLabel x1 = new JLabel("x + ");
    JTextField b = new JTextField("b    ");
    JLabel y1 = new JLabel("y = ");
    JTextField c = new JTextField("c    ");
    
    //równanie 2
    JTextField d = new JTextField("d    ");
    JLabel x2 = new JLabel("x + ");
    JTextField e = new JTextField("e    ");
    JLabel y2 = new JLabel("y = ");
    JTextField f = new JTextField("f    ");
    
    
    panel.add(tytul);
	panel.add(a);
	panel.add(x1);
	panel.add(b);
	panel.add(y1);
	panel.add(c);
	panel.add(d);
	panel.add(x2);
	panel.add(e);
	panel.add(y2);
	panel.add(f);
		    
	setContentPane(panel);
	setVisible(true);
}

}</image>

0

Poczytaj o Layout'ach i Layout Managerach. Szczegolnie o GridLayout i podobnych.

0
package pakietJava;

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

public class okno extends JFrame
{
    public static void main(String[] args)
    {
        new okno();
    }
    public okno()
    {
        super("Podaj współczynniki układu równań");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        add(new JLabel("Układ równań liniowych postaci:"),BorderLayout.NORTH);

        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2,1,2,2));

        //równanie 1
        JPanel pierwsze=new JPanel();
        pierwsze.setLayout(new FlowLayout());
        JTextField a = new JTextField("a    ");
        pierwsze.add(a);
        pierwsze.add(new JLabel("x + "));
        JTextField b = new JTextField("b    ");
        pierwsze.add(b);
        pierwsze.add(new JLabel("y = "));
        JTextField c = new JTextField("c    ");
        pierwsze.add(c);

        //równanie 2
        JPanel drugie=new JPanel();
        drugie.setLayout(new FlowLayout());
        JTextField d = new JTextField("d    ");
        drugie.add(d);
        drugie.add(new JLabel("x + "));
        JTextField e = new JTextField("e    ");
        drugie.add(e);
        drugie.add(new JLabel("y = "));
        JTextField f = new JTextField("f    ");
        drugie.add(f);

        panel.add(pierwsze);
        panel.add(drugie);
        add(panel,BorderLayout.CENTER);

        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }
}
0

Bardzo dziękuję. Naprawdę fajnie to działa przy zmianie rozmiaru okna zwłaszcza.
W NetBeans jednak nie trzeba się martwić o rozkład i tak jest chyba najlepiej projektować formy - nie martwiąc się o tak błahe sprawy.

0

Muszę jeszcze napisać graficzną reprezentację tego układu w postaci wykresu dwóch linii. Proszę napiszcie z czego najlepiej skorzystać (biblioteki) nie podając jednak gotowca - to sam napiszę.

0

Imho, nie korzystanie z menadżeró rozkładu jest złym pomysłem.
Najprostszy chyba sposób rysowania, to rysowanie na panelu (JPanel), przez nadpisanie metody paintComponent().

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