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 }

 

  

 

  

 

 

 

 

 

 

 

 

 

 

  

  

 

posted on 2017-12-27 20:23  笑明子  阅读(526)  评论(0编辑  收藏  举报

导航