[英]java swing setting frame background color not working
我正在尝试使用 java swing 创建井字游戏。 我创建了一个框架并将其背景设置为一种颜色。 问题是框架的背景颜色没有改变,我尝试使用其他 colors 但背景颜色总是白色。 这是代码:
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 上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.