zoukankan      html  css  js  c++  java
  • Java图形化界面设计——中间容器(Jpanel)

    1、  将组件添加到JFrame中

    方式之一:

    frame.getContentPane().add(childComponent)

    用getContentPane()方法获得JFrame的内容面板,再对其加入组件,一般只使用该方式添加组件。

    向JFrame中添加组件的两种方式之二:

    把组件添加到Jpanel之类的中间容器中,用setContentPane()方法把该容器置为JFrame的内容面板:

        Jpanel contentPane=new Jpanel( );

          ……//把其它组件添加到Jpanel中;

    frame.setContentPane(contentPane);

    注意:用setContentPane()方法不允许设置窗体布局,其只显示最后添加的组件,且该组件将布满整个窗口,而不管原先组件的大小设置,相当于只允许添加一次组件作为JFrame的内容面板。所以一般不实用该方法进行添加组件(可能是我不知道吧)。

     

    2、  JPanel的使用

     

     

             JPanel是java图形化界面中最常使用的容器。

    实例:在窗体中添加一个蓝色的面板

    // PanelDemo.java

    import javax.swing.*;

    import java.awt.*;  //引入AWT包,因为要使用到颜色类

    class PanelDemo {

             public static void main(String[] args)throws Exception

             {   JFrame f=new JFrame("第一个Java窗口");                   

    f.setSize(300,200);         

                  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            f.setVisible(true);         

                    f.setResizable(false);

                    f.setLocationRelativeTo(null) ;

                       f.setLayout(null);  //设置窗体布局为空布局

                    JPanel p=new JPanel();             //实例化一个面板

                       //设置面板背景色为蓝色,如果不引入AWT包,程序将出错,可以试试看

                    p.setBackground(Color.BLUE);       

                    p.setSize(100,100);          //设置面板对象大小

                    f.getContentPane().add(p);     //将面板添加到窗体中

                       //如果使用下面添加面板的方法,面板将布满整个窗口,可以试试看

                       //f. setContentPane(p);

              }

    }

     

     

    中间容器可以嵌套中间容器

     

    实例2:面板的嵌套

    import java.awt.*;

    import javax.swing.*;

    class  TwoPanel extends JFrame {

      public TwoPanel( String title){

      super(title);

    }

     public static void main(String args[]) {

       TwoPanel fr=new TwoPanel("Two Panel测试");

       JPanel pan1 = new JPanel();

       JPanel pan2 = new JPanel();

       fr.setLayout(null);     

       fr.getContentPane().setBackground(Color.green);  //设置窗口的颜色

       fr.setSize(250,250);

       pan1.setLayout(null);                  //设置面板为空布局

       pan1.setBackground(Color.red);

       pan1.setSize(150,150);

       pan2.setBackground(Color.yellow);

       pan2.setSize(50,50);

       pan1.add(pan2);   //将面板pan2添加到pan1中

             //将pan1添加到窗体中,因为pan2被添加到pan1中,所以pan1、pan2都被显示在窗体中

       fr.getContentPane().add(pan1); 

       fr.setVisible(true);

    fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     }

    }

     
  • 相关阅读:
    [转] Chrome
    阿里安全潘多拉实验室首先完美越狱苹果iOS 11.2
    【阿里聚安全·安全周刊】阿里双11技术十二讲直播预约|AWS S3配置错误曝光NSA陆军机密文件
    卡巴斯基发布安全公告:2018年威胁预测
    【阿里聚安全·安全周刊】双十一背后的“霸下-七层流量清洗”系统| 大疆 VS “白帽子”,到底谁威胁了谁?
    分享一个白帽交流灵感的社区——先知技术安全社区
    WiFi网络WPA2 KRACK漏洞分析报告
    #云栖大会# 移动安全专场——APP渠道推广作弊攻防那些事儿(演讲速记)
    #云栖大会# 移动安全专场——APP加固新方向(演讲速记)
    Java安全编码:糟糕的在线建议和令人困惑的APIs
  • 原文地址:https://www.cnblogs.com/liaoliao/p/5009427.html
Copyright © 2011-2022 走看看