呃,我不太清楚發生了什麼......對於我來說,我甚至都沒有嘗試過從IDE中連續運行幾次應用程序進行調試。我決定直接來這裏解釋一下我認爲的奇怪。JFrame窗口在每次編譯時調整大小。每次都有不同的結果
我想創建一個棕褐色和米色方塊的棋盤,我有一個JFrame窗口設置爲1024x1024尺寸,所以一個正方形。我也正在使用8x8的gridLayout。
每當我運行應用程序時,我可能會得到一個6x8的網格,下一個運行5 x8或接下來的7x7。
不知道發生了什麼事...任何幫助將是甜蜜的!
public class ChessBoard extends JFrame{
private final JFrame board = new JFrame();
private final JButton button = new JButton();
private final GridLayout grid = new GridLayout(8, 8);
public ChessBoard(){
board.setSize(1024, 1024);
board.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
board.setVisible(true);
board.setLayout(grid);
AddGridColors();
}
private void AddGridColors(){
Color tanColor = new Color(210, 180, 140);
Color beigeColor = new Color(245, 245, 220);
JPanel[] panelArray = new JPanel[63];
int panelArrayIndex;
for(panelArrayIndex = 0; panelArrayIndex < 63; ++panelArrayIndex){
panelArray[panelArrayIndex] = new JPanel();
if(panelArrayIndex == 0){
panelArray[panelArrayIndex].setBackground(tanColor);//tan
panelArray[panelArrayIndex].add(new JLabel("square"+panelArrayIndex));
board.add(panelArray[panelArrayIndex]);
}
if(panelArrayIndex > 0){
if(panelArrayIndex % 8 == 0){
panelArray[panelArrayIndex].setBackground(beigeColor);
panelArray[panelArrayIndex].add(new JLabel("square"+panelArrayIndex));
board.add(panelArray[panelArrayIndex]);
}
if(panelArray[panelArrayIndex-1].getBackground().equals(tanColor)){
panelArray[panelArrayIndex].setBackground(beigeColor);
panelArray[panelArrayIndex].add(new JLabel("square"+panelArrayIndex));
board.add(panelArray[panelArrayIndex]);
}else{
panelArray[panelArrayIndex].setBackground(tanColor);
panelArray[panelArrayIndex].add(new JLabel("square"+panelArrayIndex));
board.add(panelArray[panelArrayIndex]);
}
}
}
}
這是正常的,我錯過了一些令人難以置信的明顯的東西?
「*對於我的生活**我甚至沒有嘗試和調試**運行該應用程序後,從IDE連續幾次。我決定直接來這裏解釋一下我認爲很奇怪的東西*「 - 不是很酷......去調試,要求調試幫助實際上被認爲是脫離主題,我們不是一個錯誤查找服務 - 這就是調試器 –
你可以試着將調用移動到'AddGridColors();'setSize(1024,1024)之前;'?如果有幫助,讓我知道,這樣我就可以解釋發生了什麼。 -loop是從0到64而不是0到63? – Frakcool
此外'公共類ChessBoard擴展JFrame {'和'私有final JFrame board = new JFrame();'沒有意義,你沒有任何擴展'JFrame'原因 – Ansharja