1

我创建了一个显示按钮和标签网格的java程序,我想知道如何在标签和按钮上设置约束,以便在拖出窗口时它们不会重新调整大小..有人可以帮忙吗?

这是我的网格布局类

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());
 }
}
4

1 回答 1

2

将标签和按钮放在 aJPanel中,然后将其添加JPanel到您的GridLayout. GridLayout自动调整组件的大小以适应它们所在的单元格的大小,当调整 aJFrame的大小时,它将根据需要调整组件的大小。如果将它们放在JPanelsJPanel中,则只会调整该单元格中的大小,而不是组件。

编辑

除此之外,Java 的惯例是用大写字母命名所有类,你layout应该是Layout. 但是,该名称Layout并不能准确传达类的目的,因为您Layout类不是布局,而是. 也许会是一个更好的类名。JFrameLayoutFrame

并且(这是默认的 Java 实践)变量应该是驼峰式,以小写字母开头,后面的单词有大写字母,例如thisIsAVariable. 或者,您可以使用不是正常 Java 实践的下划线,this_is_a_varaible. 鉴于在 Java 类中通常以大写字母开头而变量以小写字母开头,该语句layout Lay = new layout();看起来非常奇怪,乍一看有点令人困惑。

于 2011-11-30T17:21:30.103 回答