Ustawienie komponentów

0

Witam.
Mam problem w ustawieniu komponentów tak, żeby przyciski JButton były po lewej stronie i miały stałe rozmiary, a na środku znajdowało się to, co ma zostać wyświetlone po naciśnięciu przycisku.
Czyli np. naciskam przycisk "Dodaj" i na środku pojawia się JTextField, w którym mogę wpisać w tym wypadku nazwę książki.

Napisałem coś takiego, ale niestety przyciski rozjeżdżają mi się po wydłużeniu okna.

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

public class Okno extends JFrame{

    // Deklaracja komponentow
    JPanel menu, zawartosc;
    JButton dodaj, usun, wyswietl, zapisz, wczytaj;

    public Okno() {
        super("Biblioteka");
        buduj();
    }
    
    private void buduj() {
        // Definicja komponentow
        menu        = new JPanel();
        zawartosc   = new JPanel();
        dodaj       = new JButton("Dodaj");
        usun        = new JButton("Usun");
        wyswietl    = new JButton("Wyswietl");
        zapisz      = new JButton("Zapisz");
        wczytaj     = new JButton("Wczytaj");
        
       
        // Ustawienia komponentow
        menu.setLayout(new GridLayout(5, 1));
        zawartosc.setBackground(Color.GREEN);
        
        
        // Dodanie komponentow
        menu.add(dodaj);
        menu.add(usun);
        menu.add(wyswietl);
        menu.add(zapisz);
        menu.add(wczytaj);
        
        
        // Dodanie glownego panelu do "plotna"
        Container pane = getContentPane();
        pane.add(menu, BorderLayout.WEST);
        pane.add(zawartosc, BorderLayout.CENTER);
        
        
        
    }
    
    public static void main(String[] args) {
        Okno ok = new Okno();
        ok.setSize(600, 200);
        ok.setDefaultCloseOperation(EXIT_ON_CLOSE);
        ok.setVisible(true);
    }
}

Próbowałem ustawiać rozmiary przycisków za pomocą funkcji setMaximumSize, setPreferedSize, ale to nic nie dawało, za każdym razem się rozjeżdżały.

0

No jak wepchniesz przyciski do grida to się nie dziw. Wciśnij przyciski do JPaneli i wtedy przycisk będzie miał stały rozmiar, a zmiana rozmiaru grida zmieni rozmiar panelu.

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