gpt4 book ai didi

java - JButton 未使用 setMaximumSize() 调整大小?

转载 作者:行者123 更新时间:2023-12-01 16:53:57 29 4
gpt4 key购买 nike

我一直在尝试学习按钮,但它拒绝调整大小。 Button1(下面的代码)仅占据整个屏幕。我看过其他帖子,他们的问题是他们没有使用

setMaximumSize();

但我正在使用它,但它仍然无法工作!我还没有制作 JPanel。这是我的 JFrame:

import java.awt.Dimension;

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

public class Frame extends JFrame {
private JButton button1;
private JButton button2;

public Frame()
{
button1 = new JButton("Hello button1");
button2 = new JButton("Hello button2");
button2.setMaximumSize(new Dimension(100,100));
button1.setMaximumSize(new Dimension(100,100));
add(button2);
add(button1);

}

}

我的主类简单明了:

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Panel extends JPanel{
public static void main(String args [])
{
Frame frame = new Frame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setVisible(true);
}
}

最佳答案

这是因为框架(的 contentPane)有一个 BorderLayout默认情况下。您将按钮添加到 BorderLayout.CENTER,因此布局管理器会忽略 minimum-、preferred- 和 maximumSize .

I just want them to come up small and side by side

为此,您可以使用简单的FlowLayout。 (如果您希望它们在框架上居中,请使用带有 GridBagLayout 的父 JPanel)

如果您想要按钮的自定义宽度和高度,请重写其 getPreferredSize 方法。重写此方法比调用 setPreferredSize 更安全。

<小时/>

Example :

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Example {

public Example() {

JButton button1 = new JButton("Hello button1");
JButton button2 = new JButton("Hello button2") {
@Override
public Dimension getPreferredSize() {
int width = super.getPreferredSize().width;
return new Dimension(width, width);
}
};;

JPanel buttonPanel = new JPanel();
buttonPanel.add(button1);
buttonPanel.add(button2);

JPanel contentPanel = new JPanel(new GridBagLayout());
contentPanel.add(buttonPanel);

JFrame frame = new JFrame();
frame.setContentPane(contentPanel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Example();
}
});
}

}

关于java - JButton 未使用 setMaximumSize() 调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35366111/

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