zoukankan      html  css  js  c++  java
  • java 解决JFrame不能设置背景色的问题 分类: Java Game 2014-08-15 09:48 119人阅读 评论(0) 收藏

    这段时间比较多,于是写一写JAVA的一些IT技术文章。如有JAVA高手请加QQ:314783246,互相讨论。

       在Java的GUI设计中,Frame和JFrame两者之间有很大差别,上次刚学时编一个窗口老是出现不能设置背景色的问题,最后通过不断将一些代码注释掉的办法查出是JFrame类的问题。

       看下面代码:

    import java.lang.*;
    import java.awt.*;

    import java.awt.event.*;
    import javax.swing.*;
    public class MainWindows extends JFrame{


      private MainWindowsContentPane;
     
      public MainWindows(){
      this.setLayout(null);
      this.setTitle("学生管理系统");
      this.setBounds(0,0,800,600);
      this.setBackground(Color.RED);//改成this.getContentPane().setBackground(Color.RED);即可

      this.addWindowListener( newWindowAdapter(){

        public void windowClosing(WindowEvent e){

           System.exit(0);

        });

      }
      this.setVisible(true);
      ContentPane=this;
        


    }

     

       该程序运行后背景色并没有变成RED,但是将第5行改成"extendsFrame"就能改背景色,那么为什么JFrame不行,原因是Frame和JFrame的窗口层次结构不同,具体可参考中国铁道出版社的《Java完美经典》一书。JFrame的窗口包括:JFrame、Root Pane、Layered pane、ContentPane、Glass Pane;而Frmae窗口包括:Frame、ContentPane。所以解决的办法是将“this.setBackground(Color.RED);”代码改成“this.getContentPane().setBackground(Color.RED);”即可。

    本文为博主原创文章,未经博主允许不得转载。
  • 相关阅读:
    TCP协议
    数据包以及数据传输
    网络模型
    Executors常见的线程池创建以及其问题
    线程池
    阻塞队列和死锁
    ConcurrentHashMap
    ReentrantLock,公平性锁和非公平性锁
    Lock
    jQuery如何获取table中每一行的数据并发送给后端?
  • 原文地址:https://www.cnblogs.com/you-well-day-fine/p/4671638.html
Copyright © 2011-2022 走看看