2
我想創建一個遊戲(Yahtzee)的scorePanel。記分板必須包含22行和1列每個玩家,但下面的代碼我正在寫爲每個玩家顯示12行和2列。GridLayout顯示2行'新GridLayout(22,1)`
import javax.swing.*;
import javax.swing.border.MatteBorder;
import java.awt.*;
public class PanelTest {
private final String player1 = "krishna";
private final String player2 = "Suresh";
public PanelTest(){
JFrame gameWindow = new JFrame("Play Game");
gameWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel gamePanel = new JPanel();
gamePanel.setLayout(new GridLayout(1,2));
/************ Scorepannel Creation starts here********************/
JPanel scorePanel;
scorePanel = createScorePanel();
/***************** Scorepanel Creation Ends Here*****************/
//adding scorePanel to gamePanel
scorePanel.setSize(500,540);
gamePanel.add(scorePanel, BorderLayout.WEST);
//adding gamePanel to gameWindow
gameWindow.add(gamePanel);
gameWindow.setSize(1000, 540);
gameWindow.setVisible(true);
}
public JPanel createScorePanel(){
JPanel scorePanel = new JPanel();
JPanel[] columns;
columns = new JPanel[3];
JLabel[] player1score;
player1score = new JLabel[22];
JLabel[] playerNames;
playerNames = new JLabel[2];
playerNames[0] = new JLabel(player1);
playerNames[1] = new JLabel(player2);
columns[0] = new JPanel();
columns[0].setSize(200, 540);
columns[0].setLayout(new GridLayout(22,0));
for (int count = 1; count <= (playerNames.length) ; count++){
columns[count] = new JPanel();
columns[count].setSize(150,540);
columns[count].setLayout(new GridLayout(22,1));
for (int i = 0; i < player1score.length; i++){
if(count == 1 && i == 0){
player1score[i] = new JLabel(player1);
player1score[i].setBorder(new MatteBorder(1, 1, 1, 1, Color.GREEN));
columns[count].add(player1score[i]);
}
if (count == 2 && i == 0){
player1score[i] = new JLabel(player2);
player1score[i].setBorder(new MatteBorder(1, 1, 1, 1, Color.GREEN));
columns[count].add(player1score[i]);
}
player1score[i] = new JLabel();
player1score[i].setBorder(new MatteBorder(1, 1, 1, 1, Color.BLACK));
columns[count].add(player1score[i]);
}
scorePanel.add(columns[count]);
}
return scorePanel;
}
public static void main(String[] args) {
new PanelTest();
}
}
只是一個友好的提示:我推薦使用JavaFX和場景生成器,因爲它更容易計算出佈局,然後像這樣硬編碼,而且它也非常易於管理! :) – ZeldaZach