gpt4 book ai didi

java - 如何使 JFrame 保持特定的宽度和高度?

转载 作者:行者123 更新时间:2023-11-29 07:09:01 24 4
gpt4 key购买 nike

我制作了一个 840 x 400 的框架并添加了一个文本字段。默认情况下,java 应用程序仅缩小到文本字段的大小。我希望它固定为相应的大小。

我尝试了 setResizable(false)setExtendedState()setBounds() 都没有用。

最佳答案

最好使用 JPanel 作为您的 contentPane 或将其添加到 contentPane,并覆盖其 getPreferredSize() 方法,然后在 JFrame 上使用pack()`。例如:

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

@SuppressWarnings("serial")
public class MyPanel extends JPanel {
private static final int PREF_W = 400;
private static final int PREF_H = 300;

public MyPanel() {
//...
}

@Override
public Dimension getPreferredSize() {
return new Dimension(PREF_W, PREF_H);
}

private static void createAndShowGui() {
MyPanel myPanel = new MyPanel();
JFrame frame = new JFrame("My GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(myPanel);
frame.setResizable(false);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

这样做的一个优点是其他类无法通过 setSize(...)setPreferredSize(...) 更改 MyPanel 的大小。

关于java - 如何使 JFrame 保持特定的宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219516/

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