我想創建一個與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);
}
}
您確定要爲此使用JButton嗎?或者,只需顯示圖像(電路板),將MouseListener添加到顯示組件,然後使用一些基本的數學運算,計算用戶在電路板上的點擊位置以及點擊位置的基礎行爲。 –
這是一個項目,我們被告知只使用JButtons,並且只使用flowlayout,borderlayout和gridlayout。 –
然後把你複雜的gui分解成它的組成矩形,給它們所有合適的佈局管理器,並將它們嵌套在一起。 –