【问题标题】:How to change color of the window如何改变窗口的颜色
【发布时间】:2013-05-19 15:43:55
【问题描述】:

我正在用 java 制作一个网络应用程序,它是一个将多个终端连接在一起的服务器。我想给服务器应用程序一个更暗的感觉(灰色和黑色),但是我似乎无法将背景颜色从默认的浅灰色更改。

这是我的应用程序的图片,因此您可以知道我在做什么:

我尝试过使用

this.getContentPane().setBackground(new Color(50, 50, 50));

但这并没有改变背景颜色。我还尝试更改 JScrollPane 的背景和前景色,但这并没有做任何事情。

更改表格的背景只会使单元格的背景变暗,而不是窗口的其余部分。任何帮助表示赞赏!

谢谢

编辑: 到目前为止,这是我的代码:

JTable serverList;
    JScrollPane scrollPane;
    Container container = this.getContentPane();

    public GuiMain()
    {
        this.setLayout(new BorderLayout());

        this.getContentPane().setBackground(new Color(50, 50, 50));
        serverList = new JTable(Variables.servers, Variables.serversHeader);
        serverList.setRowSelectionAllowed(true);
        scrollPane = new JScrollPane(serverList);
        serverList.setFillsViewportHeight(true);
        add(scrollPane, BorderLayout.NORTH);
    }

【问题讨论】:

  • 如果你不给我们看一些代码,我们怎么知道你在里面有什么(JFrame、JScrollPane、自定义 contentPane 什么类型的......)?
  • JTable 覆盖了整个窗口,所以必须在 JTable 上设置背景色,而不是在其容器上设置背景色
  • 谢谢,但是当我编辑 JTable 的背景时,它只影响单元格,而不影响窗口的其余部分。到目前为止,我添加了我的代码,所以你可以看到我做了什么。
  • 实际上,Aubin,这确实有效,但有没有办法让桌子不覆盖整个窗口?

标签: java swing colors


【解决方案1】:

ScrollPane 占据了整个窗口,因此您试图摆脱的浅灰色背景来自 ScrollPane 的视口。以下是如何更改它:

scrollPane.getViewport().setBackground(new Color(50, 50, 50));
serverList.setFillsViewportHeight(false);
// ^-- so that the JTable does not fill the Viewport

【讨论】:

  • 答案已编辑:将 setFillsViewportHeight(true) 更改为 ...(false)
  • @Ryan Sparks:如果这个答案确实解决了您的问题,请考虑将其标记为“已接受”,以便将来遇到类似问题的用户知道这是一个可行的解决方案。
猜你喜欢
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2012-10-15
  • 1970-01-01
  • 2013-06-19
  • 1970-01-01
相关资源
最近更新 更多