2013-05-19 178 views
0

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

这里是我的应用程序的图片,让你可以告诉我在做什么:

picture of program

我尝试使用

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

如果你不告诉我们一些代码,我们怎么能知道你有什么在那里(JFrame中,JScrollPane的,什么曾经输入...定制的contentPane)? – gkalpak

+0

JTable覆盖了所有窗口,因此必须在JTable上设置背景颜色,而不是在其容器上 – Aubin

+0

谢谢,但是,当我编辑JTable的背景时,它仅影响单元格,而不影响窗口的其余部分。 我添加了我的代码,所以你可以看到我所做的。 –

回答

1

滚动面板占据了整个窗口,所以你试图摆脱的浅灰色的背景是来自ScrollPane的视口。这是怎么改:

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

编辑过的问题:将'setFillsViewportHeight(true)'更改为'...(false)'。 – gkalpak

+0

@Ryan Sparks:如果这个答案确实能解决您的问题,请考虑将其标记为“已接受”,以便将来遇到类似问题的用户知道这是一个可行的解决方案。 – gkalpak