java jframe 光标颜色_如何为Java中的窗口(JFrame)添加颜色

最近一些学习Java的小伙伴,向我请教了一些关于Java图形化界面的问题,以下就是我对Java图形化界面的一些总结。

一:为何J Frame无法显示添加的颜色

public class Login extends JFrame{

public Login(){

this.setLayout(null);

this.setBounds(600, 200, 200, 300);

this.setVisible(true);

this.setBackground(Color.yellow); //为窗体设置颜色

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new Login();

}

}

效果图:

ee44ea7454a0b4a9d58066db1a1b6ba1.png

为何会出现这样的问题呢?

其实是因为,JFrame在你直接调用这个方法后,你的确设置了背景颜色,而你看到的却不是直接的JFrame或者Frame,而是JFrame.getContentPane().而JFrame上的contentPane默认是Color.WHITE(白色)的,所以,无论你对JFrame或者Frame怎么设置背景颜色,你看到的都只是contentPane.不能够显示出你所设置的颜色(可以去了解一下图形化界面的知识)

解决这个问题的办法:

(1)在完成初始化,调用getContentPane()方法得到一个contentPane容器,然后将其设置为不可见,即setVisible(false)。这样,你就可以看到真正的JFrame了。

最重要的上代码:this.getContentPane().setVisible(false);//得到contentPane容器,设置为不可见

(2)既让默认是白色,那就直接改变contentPane的颜色就行了嘛,不直接对JFrame进行操作。

话不多说上代码:this.getContentPane().setBackground(Color.yellow);//设置contentPane为黄色

(3)最最常用的方法就是直接给JFrame添加一个JLabel(标签)或者JPanel(面板),直接设置面板或者标签的颜色就行了嘛。

话不多来个例子:

public class Login extends JFrame{

JPanel pan;

public Login(){

this.setLayout(null);

this.setBounds(400, 200, 400, 500);

this.setVisible(true);

this.setBackground(Color.yellow);

init();

}

public void init() {

pan = new JPanel();

pan.setLayout(null);

pan.setVisible(true);

pan.setBounds(0,0,400,500);

pan.setBackground(Color.red);

this.add(pan);

}

public static void main(String[] args) {

new Login();

}

}

添加改变后的效果图:

7eed0ac5f36e486bb8accc2c7330c56c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值