2013-05-19 103 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