Макет менеджери артыкчылык бердиSize Java

орнотуу менеджерлери кандай иштээрин дагы деле үйрөнүп жатам. Мен эки JPanels менен кадр жасадым. Биринчисинде boxLayout менен textArea камтылган. Экинчисинде баскычы бар агымдын макети бар.

Мен ар бир панелдин артыкчылыктуу өлчөмүн орнотуп, таңгактадым, бирок күтүлбөгөн натыйжаларга жетиштим.

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

public class LayoutMgrTest
{
    public static void main(String[] args)
    {
        TableBasic frame = new TableBasic();
        frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
        frame.setVisible(true);


        frame.getContentPane().setLayout(new GridLayout(2,1));

        JPanel controlPane = new JPanel();
        JPanel buttonPane = new JPanel();

        controlPane.setLayout(new BoxLayout(controlPane, BoxLayout.PAGE_AXIS));
        controlPane.setPreferredSize(new Dimension(200, 200));
        controlPane.add(new JScrollPane(new JTextArea()));

        buttonPane.setLayout(new FlowLayout(FlowLayout.LEFT));
        buttonPane.setPreferredSize(new Dimension(100,20));
        buttonPane.add(new JButton("Button1"));
        buttonPane.add(new JButton("Button2"));

        frame.getContentPane().add(controlPane, BorderLayout.NORTH);
        frame.getContentPane().add(buttonPane, BorderLayout.SOUTH);
        frame.setSize(new Dimension(500,500));
        frame.pack();
    }
}

Эмне кылсам дагы, тордун макетин колдонсом, анда ал ар дайым бөлүнүп тургандай сезилет ар бир башкаруу үчүн бош орундун жарымы. Мага мындай деп айтышты:

Ар бир катардын бийиктиги ар бир компоненттин бийиктигине жараша болот ар бир катарга кошулган.

Кнопкалардын бийиктиги 20га барабар. Ал буга караганда көбүрөөк бөлүп берет:

Wasted space

Бул коддун эмнеси туура эмес?
Сураныч, эки JPanelsди калтырбай кетким келет. Текстти жана баскычтарды түз эле алкакка кошуу оңой, бирок мен аны JPanels менен жасашым керек (анткени мен чек араларды жана башка нерселерди кошом).

6
задан Perception 13 August 2011 в 14:28
поделиться