gpt4 book ai didi

java - setPreferredSize() 在我的 JButton 中不起作用

转载 作者:行者123 更新时间:2023-12-02 04:04:39 26 4
gpt4 key购买 nike

我正在用 Java 创建一个 Tic Tac Toe 游戏,我似乎陷入了一个我无法摆脱的问题:(。我无法调整我的按钮大小。我尝试了 setSize 和 setPreferredSize,但似乎不起作用:

这是 setPreferedSize 图片: enter image description here

和代码:

import java.awt.Dimension;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import sun.org.mozilla.javascript.internal.xml.XMLLib.Factory;



public class TicTacToe {
JFrame frame;
JPanel contentPane;
JButton row1col1;
JButton row1col2;
JButton row1col3;
JButton row2col1;
JButton row2col2;
JButton row2col3;
JButton row3col1;
JButton row3col2;
JButton row3col3;


public TicTacToe() {
// TODO Auto-generated constructor stub

frame = new JFrame("Fds");
contentPane = new JPanel();
contentPane.setLayout(new BoxLayout(contentPane,BoxLayout.Y_AXIS));

row1col1 = new JButton();
row1col1.setPreferredSize(new Dimension(600,600));
contentPane.add(row1col1);

row1col2 = new JButton();
row1col2.setPreferredSize(new Dimension(600,600));
contentPane.add(row1col2);

frame.setContentPane(contentPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);


}


private static void runGUI() {
JFrame.setDefaultLookAndFeelDecorated(true);
TicTacToe greeting = new TicTacToe();
}
public static void main(String[] args) {
/* Methods that create and show a GUI should be
run from an event-dispatching thread */
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
runGUI();
}
});


}


}

非常感谢您的帮助!

最佳答案

BoxLayout 遵循组件的最大尺寸。

在您的情况下,最大尺寸小于首选尺寸。

但是,解决方案不是使用首选/最大尺寸。

您可以使用:

button.setMargin( new Insets(10, 10, 10, 10) );

控制按钮的大小,然后可以进行正常的布局管理,因为将正确计算首选大小。

关于java - setPreferredSize() 在我的 JButton 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477175/

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