2013-04-18 129 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);