我正在嘗試使用 java swing 創建一個井字遊戲。我創建了一個框架並將其背景設置為一種顏色。問題是框架的背景顏色沒有改變,我嘗試使用其他顏色但背景顏色總是白色。這是代碼:
public class TicTacToe implements ActionListener {
Random random = new Random();
JFrame frame = new JFrame();
JPanel title_panel = new JPanel();
JPanel button_panel = new JPanel();
JLabel textField = new JLabel();
JButton[] button = new JButton[9];
boolean player1_turn;
TicTacToe () {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800,800);
frame.setVisible(true);
frame.setTitle("Tic Tac Toe");
frame.setLayout(new BorderLayout());
frame.getContentPane().setBackground(Color.BLACK);
textField.setBackground(new Color(0x084887));
textField.setForeground(new Color(0xF58A07));
textField.setText("Tic-Tac-Toe");
textField.setFont(new Font("Ink Free",Font.BOLD,75));
textField.setOpaque(true);
textField.setHorizontalAlignment(JLabel.CENTER);
title_panel.setLayout(new BorderLayout());
title_panel.setBounds(0,0,800,100);
title_panel.add(textField, BorderLayout.NORTH);
frame.add(title_panel);
}
}
您嘗試設置內容窗格的背景:
frame.getContentPane().setBackground(Color.BLACK);
但是隨後您將“標題面板”添加到框架中:
frame.add(title_panel);
所以你的標題面板完全覆蓋了內容面板。
您需要設置標題面板的背景顏色。
代碼的其他問題:
pack()
在使框架可見之前,您應該先設置框架。這將確保所有組件以其首選大小顯示。Event Dispatch Thread (EDT)
.閱讀Swing 教程。的部分Concurrency
將解釋為什麼這很重要。本教程中的所有示例都將演示如何確保代碼在 EDT 上。
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen