当前位置: 首页 > 知识库问答 >
问题:

java swing设置帧背景色不工作

酆乐湛
2023-03-14

我正在尝试使用java swing创建一个tic-tac-toe游戏。我创建了一个框架,并将其背景设置为一种颜色。问题是框架的背景色没有改变,我尝试使用其他颜色,但背景色总是白色。以下是代码:

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);
    }
}

共有1个答案

法和安
2023-03-14

您试图设置内容窗格的背景:

frame.getContentPane().setBackground(Color.BLACK);

但随后,您将“标题面板”添加到框架中:

frame.add(title_panel);

因此,您的标题面板完全覆盖了内容窗格。

您需要设置标题面板的背景颜色。

代码的其他问题:

  1. 不要在组件上使用setBounds()。布局管理器将确定每个组件的大小/位置

阅读Swing教程。关于并发性的部分将解释为什么这很重要。本教程中的所有示例都将演示如何确保代码在EDT上。

 类似资料:
  • 通过RGB值设置背景的颜色。 默认的颜色是 0x000000: // 颜色的参数可以是字符串 "#530000" 或者是十六进制数值 0x530000 controller.setBackgroundColor("#530000); //controller.setBackgroundColor(0x530000);

  • 在JFreeChart中,我使用CategoryDataset和createLineChart生成图表。这看起来像这样: 请注意图表周围的灰色区域。我想把它换成透明的,或者至少是白色的,就像上面的旧的一样。 我试着这样做: 但它不起作用。 我如何将背景改为白色,并将情节的背景改为灰色(就像旧的一样?) 谢谢 我可以更新绘图的背景,但不能更新图表面板的背景。 这是有以下选项的图表: 在这里,我想用黄

  • 问题内容: 当我尝试使用以下命令在Vim 中或直接在Vim中更改背景色时: …完全不影响我的背景。该选项也没有。但是,当我运行gvim时看起来还可以。 有没有一种方法可以在Vim中更改背景而不更改我的Konsole设置? 编辑 好的,guifg / guibg和ctermfg / ctermbg之间是有区别的。虽然GUI接受许多不同的颜色组合,但是cterm仅允许很少的标准颜色组合。 问题答案:

  • 问题内容: 我正在使用Nimbus外观。我需要在JTabbedPane中更改选项卡的背景色和前景色,但在JTabbedPane中未设置颜色。我尝试了setForeground(),setForegroundAt(),setBackground()和setBackgroundAt()方法,但没有用。这是我的代码 } 问题答案: 您可以执行几项不同的操作,具体取决于您希望对确切颜色进行多少控制。最简单

  • 问题内容: 如何设置JFrame的背景颜色? 问题答案: 检索框架的内容窗格,并使用从继承的方法更改颜色。 例:

  • 问题内容: 以下代码中的行无效。为什么?我该如何解决? 问题答案: 您需要调用小部件。默认情况下,a不会填充背景。 有关更多信息,请参见该属性的文档。 如果要使用任意背景色,则需要修改小部件的调色板: