Grid Layout Java - PullRequest
       16

Grid Layout Java

1 голос
/ 30 ноября 2011

Я создал Java-программу, которая отображает сетку кнопок и меток, и я хочу знать, как установить ограничение на метки и кнопки, чтобы они не изменяли размер при перетаскивании окна ... Кто-нибудь может помочь, пожалуйста?

это мой класс gridlayout

package JFrameTester;

import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class layout extends JFrame {

    JButton button1,button2,button3;
    JLabel label1,Label2,Label3;

    public layout (){

    setLayout(new GridLayout(2, 2));

    button1 =  new JButton ("button1");

    add(button1);

    label1 =  new JLabel ("label1");
    add(label1);

    button2 =  new JButton ("button1");
    add(button2);

    Label2 =  new JLabel ("Label2");
    add(Label2);

    button3 =  new JButton ("button1");
    add(button3);

    Label3 =  new JLabel ("Label3");
    add(Label3);

        }


}

и это мой основной класс

public class JFrameTester {


/**
 * @param args
 */
public static void main(String[] args) {


    layout Lay = new layout();
     Lay.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     Lay.setVisible(true);


    // JFrame frame = new JFrame("BUY COMPUTER");

    Lay.setSize(800, 600);
        //frame.pack();
   //  frame.setVisible(true);
     Lay.addWindowListener(new MyWindowListener());
 }
}

1 Ответ

2 голосов
/ 30 ноября 2011

Поместите метки и кнопки внутри JPanel, а затем добавьте это JPanel к своему GridLayout.GridLayout автоматически изменяет размеры компонентов в соответствии с размером ячейки, в которую они помещены, и когда размер JFrame изменяется, он корректирует размер компонентов по мере необходимости.Если вы поместите их в JPanel s, изменится только JPanel в этой ячейке, а не компоненты.

EDIT

В дополнение к этому это Javaпрактикуйтесь в именах всех классов заглавными буквами, ваш layout должен быть Layout.Однако имя Layout не совсем точно отражает цель класса Layout, поскольку ваш класс - это не a макет, это JFrame.Возможно, LayoutFrame было бы лучшим именем класса.

И (это практика по умолчанию на Java) переменные должны быть в верблюдах, начиная со строчной буквы и следующих слов, имеющих заглавную букву, например thisIsAVariable.В качестве альтернативы вы можете использовать подчеркивание, что не является обычной практикой Java, this_is_a_varaible.Учитывая, что в Java классы обычно начинаются с заглавной буквы, а переменные начинаются со строчной буквы, выражение layout Lay = new layout(); на первый взгляд выглядит очень странным и немного запутанным.

...