Swing JComponents выравнивание как форма - PullRequest
4 голосов
/ 09 августа 2011

Как выровнять эти JComponents как форму в центре панели содержимого ... используя Swing

        panel1.add(l1);
        panel1.add(c1);
        panel1.add(l2);
        panel1.add(c2);
        panel1.add(b4);
        panel1.add(b5);
        frame1.getContentPane().add(panel1);

Пожалуйста, помогите мне

Ответы [ 4 ]

6 голосов
/ 09 августа 2011

Как насчет того, чтобы сначала прочитать Компоновка компонентов в контейнере ?Я злоупотребляю этим высказыванием, но, всегда есть более чем один способ скинуть кошку


Вот лишний пример, в котором используются BoxLayout и setAlignmentX(...) в случаях JComponent -

public final class StackComponentsDemo {
    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable(){
            @Override
            public void run() {
                createAndShowGUI();             
            }
        });
    }

    private static void createAndShowGUI(){
        final JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        final JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

        panel.add(new DisabledJButton());
        panel.add(new DisabledJButton());
        panel.add(new DisabledJButton());
        panel.add(new DisabledJButton());
        panel.add(new DisabledJButton());

        frame.add(panel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    private static final class DisabledJButton extends JButton{
        public DisabledJButton(){
            super("Disabled");
            setEnabled(false);
            setAlignmentX(Component.CENTER_ALIGNMENT);
        }
    }
}

enter image description here

2 голосов
/ 09 августа 2011

Проверьте SpringLayout , если это соответствует вашим потребностям. Если нет, вероятно, подойдет GridBagLayout .

Вот пример использования SpringLayout для простого макета в форме.

1 голос
/ 09 августа 2011

Я бы рекомендовал использовать менеджер boxlayout.Использование менеджеров компоновки без помощи IDE требует некоторого времени и практики.Более подробную информацию можно найти здесь: http://download.oracle.com/javase/tutorial/uiswing/layout/box.html

0 голосов
/ 09 августа 2011

Если ничего не помогает, вы всегда можете попробовать: http://code.google.com/intl/nl-NL/javadevtools/wbpro/layoutmanagers/swing/index.html

Я действительно был впечатлен конструктором окон, он генерирует красивый и чистый код и легко интегрируется в Eclipse.

...