Jak ustawić zmienne BorderLayout, żeby móc dodać wiele wierszy z buttonami?

2018-12-19 19:59
0

Chodzi o to, żeby wykorzystać wyłącznie zmienne BorderLayout oraz komponenty JButton, JPanel oraz metodę getContentPane.
Kod, który wyświetla 3 wiersze buttonów. Jak zrobić, żeby widać było np. 10 wierszy np po 3 jbutton od góry do dołu?

package layoutsalone1;
import javax.swing.*;
import java.awt.*;
/**
 *
 * @author finito
 */
public class LayoutsAlone1 extends JFrame {

    JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.CENTER));
    JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
    JPanel panel3 = new JPanel(new FlowLayout(FlowLayout.CENTER));
    JButton button1 = new JButton("button1");
    JButton button2 = new JButton("button2");
    JButton button3 = new JButton("button3");
    JButton button4 = new JButton("button4");
    JButton button5 = new JButton("button5");
    JButton button6 = new JButton("button6");
    JButton button7 = new JButton("button7");
    JButton button8 = new JButton("button8");
    public LayoutsAlone1()
    {
        this.setBounds(400, 400, 400, 300);
        initComponents();
        this.setDefaultCloseOperation(3);
    }
    public void initComponents()
    {

        panel1.add(button1);
        panel1.add(button2);
        panel1.add(button3);
        this.getContentPane().add(panel1,BorderLayout.PAGE_START);
        panel2.add(button4);
        panel2.add(button5);
        this.getContentPane().add(panel2,BorderLayout.CENTER);
        panel3.add(button6);
        panel3.add(button7);
        panel3.add(button8);
        this.getContentPane().add(panel3,BorderLayout.PAGE_END);

    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        new LayoutsAlone1().setVisible(true);
    }

}
edytowany 3x, ostatnio: furious programming, 2018-12-19 20:17

Pozostało 580 znaków

2018-12-20 07:19
  1. Za argument 3 w tym wierszu
    this.setDefaultCloseOperation(3);

    będziesz się całą wieczność smażył w piekle.

  2. Z czego Ty się uczysz? Korzystanie z getContentPane() od wielu lat jest zbyteczne, wystarczy
    add(panel2,BorderLayout.CENTER);
  3. Utwórz cztery panele z BorderLayout:
    • do pierwszego dodaj trzy przyciski w obszarach NORTH, CENTER i SOUTH
    • w drugim i trzecim zrób to samo.
    • do czwartego dodaj panel trzeci w obszarze CENTER i jeden przycisk w obszarze SOUTH
    • JFrame dodaj panel1 (NORTH), panel2 (CENTER) i panel4 (SOUTH).

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
Znaczy teraz działa i widać wszystkie buttony, ale trzeci panel z buttonami jest w tym samym wierszu, co panel ostatni, a mnie chodziło o to, by trzeci panel był pod drugim a czwarty pod trzecim itd. Ale i tak dzięki za podpowiedź. - finito 2018-12-20 12:41

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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