java swing图形界面开发_java Swing图形界面开发_001

本文介绍了Java Swing图形界面开发的基础知识,包括Swing包结构、AWT的缺点、Swing组件层次。通过实例展示了如何创建JFrame、JPanel、JButton等组件,并将组件添加到容器中,以及如何添加菜单到顶级容器。Swing提供了跨平台的解决方案,解决了AWT平台不兼容的问题。
摘要由CSDN通过智能技术生成

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 classSwing_001 {3 public static voidmain(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组件层次:

7798f43d4335396ec2cded26d0136a2c.png

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

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

1723f478a7a05245c0effb77aa47682d.png

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

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

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

案例:

1 import javax.swing.*;2 public classSwing_001 {3 public static voidmain(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 classSwing_001 {3 public static voidmain(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 = newJPanel();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 packageswing;2 import javax.swing.*;

6 public classswing001 {7 public static voidmain(String agrs[]){8 //顶层窗口

9 JFrame jFrame = new JFrame("顶层容器");10 jFrame.setSize(600,500);11 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);12 //菜单条

13 JMenuBar jMenuBar = newJMenuBar();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 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值