gpt4 book ai didi

java - Java 网格布局

转载 作者:行者123 更新时间:2023-11-30 04:56:39 25 4
gpt4 key购买 nike

我创建了一个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());
}
}

最佳答案

将标签和按钮放入 JPanel 中,然后将该 JPanel 添加到 GridLayout 中。 GridLayout 自动调整组件大小以适应它们所在单元格的大小,并且当调整 JFrame 大小时,它将根据需要调整组件大小。如果将它们放置在 JPanel 中,则仅会调整该单元中的 JPanel 大小,而不是组件的大小。

编辑

除了 Java 习惯用大写字母命名所有类之外,您的 layout 还应该是 Layout。但是,名称 Layout 并不能准确传达 Layout 类的用途,因为您的类不是 布局,而是 JFrame。也许 LayoutFrame 是一个更好的类名。

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

关于java - Java 网格布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com