我是用Java編程的,而且還是比較新的。嘗試使用GUI基礎知識,我決定製作一個棋盤,所有64個單元都是JButton的實例,背景填充。可悲的是,當我試圖編譯代碼時,只有兩個按鈕出現,並且它們都沒有着色。我試圖理解這個問題,但現在看起來有點超出我了。用於輸出棋盤按鈕的GridLayout
package checkerboard;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.*;
public class Checkerboard extends JFrame {
public Checkerboard() {
JButton black = new JButton("B");
JButton white = new JButton("W");
black.setBackground(Color.BLACK);
white.setBackground(Color.WHITE);
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(8, 8));
p1.setSize(600, 600);
for (int i = 0; i < 8; i++) {
if (i % 2 == 0) {
for (int j = 0; j < 4; j++) {
p1.add(black);
p1.add(white);
}
} else {
for (int j = 0; j < 4; j++) {
p1.add(white);
p1.add(black);
}
}
}
super.add(p1);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Checkerboard frame = new Checkerboard();
frame.setTitle("Checkers");
frame.setSize(600, 600);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
在試驗JPanel時,出於一些奇怪的原因,第27行有一個NullPointer異常。
這是一個家庭作業嗎? – 2012-02-28 16:39:26
@Alex請參閱我的修改回答 – 2012-02-28 17:00:27
也考慮一個對比的前景色。 – trashgod 2012-02-28 19:32:01