2013-04-18 132 views
0

所以,我想展示一個簡單的JFrame,但我無法改變背景顏色?做了幾次搜索,他們都建議使用我擁有的useContentPane。JFrame背景顏色不會改變?

import java.awt.*; 

import javax.swing.*; 


public class Login { 

    public static void main(String[] args) { 

     createWindow(); 

     } 

    private static void createWindow() { 
     JFrame frame = new JFrame("Login System"); 
     frame.getContentPane().setBackground(Color.darkGray); 
     frame.setSize(350, 350);  
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JTextField username = new JTextField(); 
     frame.add(username); 
     frame.setVisible(true); 
    } 


} 

JFrame大小的作品,但背景沒有和TextField沒有,這是相當新的。有任何想法嗎?所有的幫助表示讚賞。

+1

'JTextField'佔據了'JFrame'的全部區域... – Reimeus

+0

@Reimeus哈哈哈,我試着改變尺寸。 username.setSize(100,280);我相信那是錯誤的。 – Vernard

回答

4

的代碼工作正常。問題在於你的文本字段佔用了整個框架。嘗試:

//frame.add(username); 
frame.add(username, BorderLayout.NORTH); 
+0

謝謝!無論如何要使用特定的座標來定位它? – Vernard

+0

*「使用特定的座標來定位它?」 *號使用的佈局或你的下幾個問題將是對未來的機器或運行於爲什麼你的GUI休息。 –

0

與您的代碼的問題是,你的文本字段覆蓋全JFrame的

的方式之一是減少在設計視圖中的文本字段的大小,然後在代碼中加入這一行。

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