java jbutton 大小_Java swing JButton的顺序和大小

我想创建一个与Java swing的棋盘游戏,但我已经变得非常困惑与布局。此刻,我正试图创建用户所看到的图像。为了做到这一点,我使用了BorderLayout(我只需要使用边界网格流布局),我认为我会在东南西北部放置一些工作人员,并在中心放置基础板。问题是我必须创建道具使用JButton移动的路径(其余空间应该留空),并且该路径需要具有特定的交叉形状:http://i59.tinypic.com/eileys.png并且尺寸应该比平常小。对于初学者,我尝试过使用带有网格布局的JPanel(放在中间),但是无论我做什么(如setPreferredSize()),按钮都将调整大小以填充空间。 这是我的代码。谢谢你的时间,任何提示都会有帮助! 编辑:Java swing JButton的顺序和大小

package projtest1;

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class Board extends JFrame

{

public Board()

{

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setTitle("Border Layout");

setMinimumSize(new Dimension(1280, 768));

setSize(1280, 768);

JPanel contentPane = new JPanel();

contentPane.setLayout(new BorderLayout());

contentPane.add(new JButton("North"), BorderLayout.NORTH);

contentPane.add(new JButton("South"), BorderLayout.SOUTH);

contentPane.add(new JButton("West"), BorderLayout.WEST);

contentPane.add(new JButton("East"), BorderLayout.EAST);

JPanel buttonPanel = new JPanel();

buttonPanel.setLayout(new GridLayout(3, 1, 1, 1));

buttonPanel.setSize(new Dimension (800,800));

JPanel topButtonPanel = new JPanel();

JPanel middleButtonPanel = new JPanel();

JPanel lastButtonPanel = new JPanel();

topButtonPanel.setLayout(new GridLayout(6, 3, 1, 1));

middleButtonPanel.setLayout(new GridLayout(3, 15, 1, 1));

lastButtonPanel.setLayout(new GridLayout(6, 3, 1, 1));

topButtonPanel.setSize(new Dimension (100,300));

//topButtonPanel.setMinimumSize(new Dimension (100,300));

middleButtonPanel.setSize(new Dimension (700,100));

lastButtonPanel.setSize(new Dimension (100,300));

for (int i=0; i<18; i++)

{

JButton button = new JButton("(" + i + ")");

button.setFont(new Font("",Font.BOLD,10));

button.setPreferredSize(new Dimension(4, 4));

topButtonPanel.add(button);

}

for (int i=0; i<45; i++)

{

JButton button = new JButton("(" + i + ")");

button.setFont(new Font("",Font.BOLD,10));

button.setPreferredSize(new Dimension(4, 4));

middleButtonPanel.add(button);

}

for (int i=0; i<18; i++)

{

JButton button = new JButton("(" + i + ")");

button.setFont(new Font("",Font.BOLD,10));

button.setPreferredSize(new Dimension(4, 4));

lastButtonPanel.add(button);

buttonPanel.add(topButtonPanel);

buttonPanel.add(middleButtonPanel);

buttonPanel.add(lastButtonPanel);

}

contentPane.add(buttonPanel, BorderLayout.CENTER);

setContentPane(contentPane);

}

}

+0

您确定要为此使用JButton吗?或者,只需显示图像(电路板),将MouseListener添加到显示组件,然后使用一些基本的数学运算,计算用户在电路板上的点击位置以及点击位置的基础行为。 –

+0

这是一个项目,我们被告知只使用JButtons,并且只使用flowlayout,borderlayout和gridlayout。 –

+1

然后把你复杂的gui分解成它的组成矩形,给它们所有合适的布局管理器,并将它们嵌套在一起。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值