53、Swing的入门

学习目标:

1、了解什么是Swing

2、掌握Swing的开发插件的使用

学习过程:

java实现图形界面是非常复杂的,用一两天的时间是不可能全部讲完的,但是我们并不想深入的进行讲解,因为我们以后主要还是学习B/S结构的系统。如果大家想深入学习可以买一本专门讲解swing的相关书籍。

一、什么是swing

Swing是一个用于开发Java应用程序用户界面的开发工具包,可以用来设计图形化界面。在java中第一版的图形用户接口GUI包叫AWT,比较失败。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。工具包中所有的包都是以swing作为名称。相比AWT而言,Swing更加轻巧,所以也成为轻量级的用户界面设计包。

二、最简单的窗口实现

Swing的使用非常简单,使用Swing创建图形界面步骤:1、设置顶层容器和所使用的布局,2、放置控件,比如按钮,输入框等等。3、绑定事件,可以为窗口,控件绑定不同事件,比如可以为按钮绑定单击事件,为输入框绑定获得焦点事件等等。

图形界面至少要有一个顶级Swing容器顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持。常用的顶级容器:

JFrame(框架):表示主程序窗口

JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口

JApplet(小程序):在浏览器内显示一个小程序界面

一个框架一般边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格,窗格也可以看作是一种面板,但它是框架的一个组成部分,组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上。

面向对象的思想是所有的东西都是对象,所以我们所说的窗口、按钮等等这些都是对象,都有其对应的类,我们学习swing大部分就是学习这些对象,在可视化设计中有更专业的称呼,称为组件。下面我们先手动的使用代码完成一个简单的界面,代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 public static void main(String[] args) {

         

        JFrame jFrame=new JFrame("标题");

         

        JButton button=new JButton();

        button.setText("提交");

         

        jFrame.add(button);

         

        jFrame.setSize(400300);

         

        jFrame.setVisible(true);//显示窗口

         

         

    }

运行上面的代码即可出现一个窗口,该窗口只有一个按钮,窗口界面就是这么简单就是实现了。如图所示:

attcontent/f248ee4b-b88c-4260-80d9-36ba5766c553.png

三、使用MyEclipse的插件可视化开发

如果用户的界面全部使用编码来完成工作量是非常大的,如果使用过微软的人可以会觉得VS studio所提供的可视化界面设计非常简单。(可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件)。MyEclipse默认已经有一套可视化开发Swing的工具,使用这个工具可以极大的简化我们的工作量,虽然相比微软的VS studio而言还有很大的距离,不过使用起来还是不错的。

1、新建一个项目Stu15,新建包com.ui,这个包放置所有的界面设计类,选中该包右键,选中new,点击other,如图所示:

attcontent/a945bc5e-b295-41aa-bfdb-4599481a4bfd.png

2、选择MyEclipse,再选择MyEclipse的Matisse Form,输入类名,选中继承JFrame。新建一个窗口。

attcontent/fbbd0ed4-3c00-4d40-a5ba-c2494eaff669.png

3、MyEclipse会自动打开一个可视化窗口的设计界面,如图所示

attcontent/2e1730b1-9374-4ddd-a87e-3c12e19e417f.png

现在你可以先自己尝试一下把空间放置在面板上面。

猜你喜欢

转载自blog.csdn.net/liubao616311/article/details/83720373
53
今日推荐