zoukankan      html  css  js  c++  java
  • java Swing图形界面开发_001

    java AWT的缺点:

      平台不兼容(不同的品台样式不一样,有些组件在某些品台上不兼容)。

    java Swing包结构:

      javax.swing包:几乎所有的组件都在这里。

      swing.border包:包含很多绘制边框的类。

      swing.event包:包含了很多事件监听的类。

      swing.table包:Swing包中JTable组件,但是其支持的类都在swing.table包中。

      swing.text包:这个包下面有四个用于显示和编辑文本的包。

    java Swing helloWorld代码:

    1 import javax.swing.*;
    2 public class Swing_001 {
    3     public static void main(String args []){
    4         JFrame jFrame = new JFrame("JFrame");//最外层
    5         jFrame.setSize(600,400);
    6         jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      //设置右上角的最大化,最小化,关闭的作用。
    7         jFrame.setVisible(true);
    8     }
    9 }

    java Swing组件层次:

    上图中:JComponet是不能独立显示的组件。Window是可以独立显示的组件。

    javax.Swing包中的组件有三种类型:(顶层组件,中间组件,基本组件)

    1:顶层组件:(JFrame,JApplet,JDialog,JWindow)前面说的可以独立存在的组件

    2:中间容器:(JPanel,JScrollPane,JSplitPane,JToolBar)可以充当载体但是不能独立存在

    3:基本组件:  (JButton,JList,JMenu,JComboBox,JTextField) 最终实现人机交互的的组件

    案例:

     1 import javax.swing.*;
     2 public class Swing_001 {
     3     public static void main(String args []){
     4         JFrame jFrame = new JFrame("顶层组件");         //顶层容器
     5         jFrame.setSize(600,400);
     6         jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     7         JPanel jPanel = new JPanel();      //中间容器
     8         jFrame.setContentPane(jPanel);      //将中间容器添加到顶层容器中
     9         JButton jButton = new JButton("按钮");    //基本组件
    10         jPanel.add(jButton);    //基本组件放到中间容器中
    11         jFrame.setVisible(true);    //放到最后(放到前面不行)
    12     }
    13 }

     Window类:

    window描述顶层容器类。用于提供中间容器的绘制面板。在Swing中顶层容器有主要有三种

      1:JFrame:用来设计类似于Windows系统的窗口的界面。

      2:JDialog:和JFrame类似,但是这个主要用作对话框,弹框。

      3:JApplet:用来设计可以嵌入网页的java小程序。

    将组件放到顶级容器中:

      不像在AWT中,在Swing中放置一个组件到顶级容器中需要添加中间容器:顶级容器 》 中间容器 》 基本组件。

    中间容器是轻量级的,顶级容器是重量级的。这样可以避免使用重量级的顶级容器。

      在JFrame中添加中间容器和中间组件有两种方法:

      1:使用getContentPane()方法获取到JFrame的内容,然后在内容的基础上添加基本组件:frame.getContentPane().add(基本组件)

      2:使用setContentPane()直接在JFrame上添加一个中间容器(JPanel,JDesktopPane)而基本组件放在了中间组件中

    方法2案例:

     1 import javax.swing.*;
     2 public class Swing_001 {
     3     public static void main(String args []){
     4         //创建并渲染顶级容器
     5         JFrame jFrame = new JFrame("顶级容器");
     6         jFrame.setSize(600,400);
     7         jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     8         jFrame.setVisible(true);
     9         //创建中间容器JPanel
    10         JPanel jPanel = new JPanel();
    11         //将JPanel放到顶级容器中
    12         jFrame.setContentPane(jPanel);
    13         //创建两个按钮,放到中间容器中
    14         JButton jButtonA = new JButton("按钮A");
    15         JButton jButtonB = new JButton("按钮B");
    16         jPanel.add(jButtonA);
    17         jPanel.add(jButtonB);
    18     }
    19 }

     将菜单添加到顶级容器中:

     1 package swing;
     2 import javax.swing.*;
     6 public class swing001 {
     7     public static void main(String agrs[]){
     8         //顶层窗口
     9         JFrame jFrame = new JFrame("顶层容器");
    10         jFrame.setSize(600,500);
    11         jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    12         //菜单条
    13         JMenuBar jMenuBar = new JMenuBar();
    14         //菜单
    15         JMenu jMenuA = new JMenu("菜单A");
    16         JMenu jMenuB = new JMenu("菜单B");
    17         //菜单条添加菜单
    18         jMenuBar.add(jMenuA);
    19         jMenuBar.add(jMenuB);
    20         //菜单项
    21         JMenuItem jMenuItemA = new JMenuItem("菜单项A");
    22         JMenuItem jMenuItemB = new JMenuItem("菜单项B");
    23         //菜单项添加菜单项
    24         jMenuA.add(jMenuItemA);
    25         jMenuA.add(jMenuItemB);
    26         //顶级窗口添加菜单条
    27         jFrame.setJMenuBar(jMenuBar);
    28         jFrame.setVisible(true);
    29 
    30     }
    31 }

      

      

      

      

  • 相关阅读:
    数据库基础概念及操作语句
    多态、封装、继承的概念。
    排序有几种方式
    构造函数、复制构造函数和析构函数的特性
    String类的构造函数,析构函数、拷贝构造函数和赋值函数
    操作系统中进程调度策略
    静态数据成员和函数
    指针与引用的区别
    const的用法及它在C语言和C++中的不同
    反射性能优化
  • 原文地址:https://www.cnblogs.com/Xmingzi/p/8127514.html
Copyright © 2011-2022 走看看