我是Java swing庫的新手,我目前在設置JFrame的背景時遇到了一些麻煩。Java setBackground()混淆
我已閱讀jframe-setbackground-not-working-why及其內的鏈接,但似乎並不適合此處。
這裏是我的代碼:
public class Board extends JPanel{
public enum pointType{
EMPTY,
CARRIER,
BALL;
}
private class Point{
int x;
int y;
pointType type;
public void paint (Graphics2D g2){
// color changes depends on pointType
g2.setColor(Color.WHITE);
g2.fillOval(x,y,25,25);
}
}
Point[][] myBoard;
public Board(){
//constructor, myBoard = 2d List of points
}
//.. other methods and class variables
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D) g;
for(int k =HEIGHT; k>=0; k--){
for(int i=WIDTH; i>=0; i--){
// call paint method for each points on board
myBoard[i][k].print(g2);
}
}
}
public static void main(String[] args){
Board board = new Board();
JFrame myFrame = new Jframe("Game");
myFrame.add(board);
board.setBackground(Color.YELLOW);
myFrame.setVisible(true);
mtFrane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
我的代碼成功打印所有的點根據自己的pointType,但主板的顏色設置不正確(還是默認背景)。
所以這裏的問題:
1)我應該如何正確地設置背景是什麼?
2)我覺得我的代碼沒有正確使用JPanels/JFrames/Graphics,如果是這樣的話,關於如何改進我的代碼結構的任何建議?而不是
沒有,請小心 - 這是'的paintComponent(圖形G)''不paintComponents' - *** ***無最後的's' –
要設置JPanel的背景,請在其構造函數中調用'setBackground(Color c)'。 –