当前位置: 代码迷 >> Java相关 >> 设置JFrame的背景色
  详细解决方案

设置JFrame的背景色

热度:192   发布时间:2007-04-06 19:39:09.0
设置JFrame的背景色

最近在学Swing 遇到这个问题:
public class Test
{
public static void mian(String[] args)
{
JFrame jf= new JFrame();
jf.setBackgroud(Color.red);// 问题就出在这!!!
setVisible(true);
jf.setDefaultoperation(1);
jf.setsize(100,100);
jf.setLocation(100,100);
}

程序运行时,出现的JFrame一闪一下,本来的背景色(Color.red)变为默认的颜色。
这是怎么回事。


搜索更多相关的解决方案: JFrame  设置  

----------------解决方案--------------------------------------------------------
import javax.swing.*;
import java.awt.*;
public class Test
{
public static void main(String[] args)
{
JFrame jf= new JFrame();
jf.setBackground(Color.red);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*此处拷贝书上,自己理解是程序关闭后,正常退出,找了找jdk1.6的doc没找到你写的setDefaultOperation,笔误吧*/

jf.setSize(100,100);
jf.setLocation(100,100);
}
}
我运行没有问题!
----------------解决方案--------------------------------------------------------
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFrame.EXIT_ON_CLOSE是个常量,可以用1代替的。
----------------解决方案--------------------------------------------------------
小牛:
jf.setDefaultoperation(1);


jhuwangvs:
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
----------------解决方案--------------------------------------------------------

我试了,JFrame.EXIT_ON_CLOSE不能用1代替
否则控制台不能正常退出
我用的是jdk1.5


----------------解决方案--------------------------------------------------------

import javax.swing.*;
import java.awt.*;
public class Test
{
public static void mian(String[] args)
{
JFrame jf= new JFrame();
jf.setBackground(Color.RED);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 如果是1.6可以你用1代替看看行不.
jf.setSize(100,100);
jf.setLocation(100,100);
}
}


----------------解决方案--------------------------------------------------------
以下是引用小牛在2007-4-6 19:39:09的发言:

最近在学Swing 遇到这个问题:
import javax.swing.*;
import java.awt.*;
public class Test
{
public static void main(String[] args)
{
JFrame jf= new JFrame();
jf.getContentPane().setBackground(Color.red); //注意这个
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(100,100);
jf.setLocation(100,100);
}
}

程序运行时,出现的JFrame一闪一下,本来的背景色(Color.red)变为默认的颜色。
这是怎么回事。


PS1: 楼主的代码N多笔误
PS2: 楼上几位貌似都走题了。


----------------解决方案--------------------------------------------------------
import javax.swing.*;
import java.awt.*;
public class Test
{
public static void main(String[] args)
{
JFrame jf= new JFrame();
jf.getContentPane().setBackground(Color.red); //注意这个
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setSize(100,100);
jf.setLocation(100,100);
}
}

他刚提这个问题时我也这么试了下
可是运行后 显示的并不是红色的背景色,要把整个窗体的大小 拉大或边小点后背景色才显示出来是怎么回事啊!


----------------解决方案--------------------------------------------------------
因为顺序反了
应该是

先设置大小,然后再设置其可见
jf.setSize(100,100);
jf.setLocation(100,100);


jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


----------------解决方案--------------------------------------------------------

还有,JAVA的常量最好还是用大写,Color.RED会更好一些

Color.red是以前写Color这个类的程序员没有注意所造成的错误,后来已经加了大写的常量

所以我们尽量遵守JAVA的命名规范


----------------解决方案--------------------------------------------------------