gpt4 book ai didi

java - 如何设置 JFrame 的最小大小,以阻止用户将其调整为更小的大小?

转载 作者:行者123 更新时间:2023-12-05 08:56:01 24 4
gpt4 key购买 nike

我有一个 JFrame,它不能小于特定大小,否则元素无法正确布局。

我尝试了 setMinimumSize() 并覆盖了该框架的 getMinimumSize() 方法,但我仍然可以将框架调整为更小。

所以,当 componentResized() 时,我是否必须在我的 componentListener 中监听边界的变化,如果它更小,则使用 将其设置回正常大小setBounds()?

最佳答案

由于缺乏可编译的代码,很难说出你的代码哪里出了问题。可能调用 setMinimumSize(..) 发生在错误的时间和/或错误的值。

此处,此代码不允许框架比最初出现时更小,但允许用户将其拖动得更大。查看评论以获取提示。

import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class MinimumSizeFrame {

private JComponent ui = null;

MinimumSizeFrame() {
ui = new JPanel(new BorderLayout(4,4));

JLabel label = new JLabel("Text in big label");
label.setBorder(new EmptyBorder(40, 100, 40, 100));
ui.add(label);
}

public JComponent getUI() {
return ui;
}

public static void main(String[] args) {
Runnable r = () -> {
MinimumSizeFrame o = new MinimumSizeFrame();

JFrame f = new JFrame(o.getClass().getSimpleName());
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationByPlatform(true);

f.setContentPane(o.getUI());
// have the JVM calculate the ideal size of this GUI
f.pack();
// now use THAT as minimum size!
f.setMinimumSize(f.getSize());

f.setVisible(true);
};
SwingUtilities.invokeLater(r);
}
}

关于java - 如何设置 JFrame 的最小大小,以阻止用户将其调整为更小的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42954679/

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