java 界面开发_JAVA 图形界面开发基础详解

与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解。

1.Java提供的图形界面类有哪些?

Java提供了两套图形界面

(1)AWT组建(基础)

AWT组件是jdk1.0的时候推出的图形界面类,它是位于java.awt包下的类。

当时在开发AWT组件时,采用的语言是C和C++,并且还调用了操作系统底层的绘图函数来实现AWT组件(我们看到的图形界面实际上画出来的)。

基于语言和底层函数的调用,就导致AWT组件无法实现跨平台性。

(2)SWING组件(扩展)

SWING组件是jdk1.4的时候推出的图形界面类,它是位于javax.swing包下的类。

SWING组件是基于AWT组件的基础上,采用纯Java语言构建一个条新的轻量级跨平台组件。

AIR富客户端

JavaFX

2.常用的组件类和辅助类

(1)容器组件类:组件上能添加其他的组件,那该组件就是容器组件类。

JFrame 窗体容器组件类 顶级容器(顶级容器不要相互添加),如果要实现一个图形界面,首先必须要先有一个顶级容器

JPanel 面板容器组件类 最灵活的容器

(2)元素组件类:一般是用来显示文字、图片或者接收输入信息的就是元素组件类。

JLabel   标签元素组件类  显示文字或图片,也可以文字图片一起显示

JTextField  文本输入框元素组件类 接收用户输入的信息,然后将输入信息直接显示

JPasswordField 密码输入框元素组件类 接收用户输入的信息,然后将输入的每一个字符都用对应的一个符号代替显示

JButton   按钮元素组件类  显示文字或图片,也可以文字图片一起显示,可以点击

JComboBox  下拉列边框元素组件类 可以给组件添加多个选项,每次只能选中一个,默认不可以编辑。

JCheckBox  复选框元素组件类  提供一个选择框,在框后还可以显示文字或图片信息。

注意:上述的容器组件类和元素组件类都是属于SWING组件中的类,如果要使用这些类,要记得加上类的包名,例如:javax.swing.JFrame。

(3)辅助类:帮助组件完成某一个特定功能的类。

java.awt.FlowLayout  流式布局类,流式布局的效果类似于Word文档,但是不能像Word一样回车换行。

java.awt.BorderLayout 边框布局类,把容器分为五部分,上北下南左西右东中间,每一个部分只能添加一个组件。

在java.awt包和javax.swing包下所有以Layout结尾的类都是布局类。布局类只能应用在容器组件上。

java.awt.Dimension  封装组件宽度和高度的类

javax.swing.ImageIcon 加载图片到程序中的类

3.界面实现(搭积木的过程)

(1)定义Login类,在类中定义主函数和初始化界面的方法。

(2)在主函数中实例化Login类的对象,然后用对象名调用初始化界面的方法。

(3)在initUI方法中,实例化JFrame窗体容器组件类的对象。

(4)设置窗体容器组件的属性值:标题、大小、显示位置、关闭操作、禁止调整组件大小、布局、可见。

(5)实例化元素组件类的对象,添加到窗体上(组件的添加要在窗体可见之前完成)。

1 packagexxj.login;2

3 importjava.awt.BorderLayout;4 importjava.awt.Dimension;5 importjava.awt.FlowLayout;6

7 importjavax.swing.ImageIcon;8 importjavax.swing.JButton;9 importjavax.swing.JComboBox;10 importjavax.swing.JFrame;11 importjavax.swing.JLabel;12 importjavax.swing.JPanel;13 importjavax.swing.JTextField;14

15 /**

16 * 1.定义Login类,17 */

18 public classLogin {19

20 /**

21 * 1.在类中定义主函数和22 */

23 public static voidmain(String[] args) {24 //2.在主函数中实例化Login类的对象,然后用对象名调用初始化界面的方法。

25 Login login = newLogin();26 login.initUI();27 }28

29 /**

30 * 1.初始化界面的方法。31 */

32 public voidinitUI() {33 //3.在initUI方法中,实例化JFrame窗体容器组件类的对象。

34 JFrame frame = newJFrame();35 //4.设置窗体容器组件的属性值:标题、大小、显示位置、关闭操作、禁止调整组件大小、布局、可见。

36 frame.setTitle("Login");//设置窗体的标题属性值

37 frame.setSize(380, 320);//设置窗体的大小属性值,单位是像素

38 frame.setLocationRelativeTo(null);//设置窗体显示在屏幕的中央

39 frame.setDefaultCloseOperation(3);//设置窗体的关闭操作,3表示关闭窗体退出程序。

40 frame.setResizable(false);//设置禁止调整窗体的大小

41

42 /**

43 * // 实例化FlowLayout流式布局类的对象 FlowLayout fl = new44 * FlowLayout(FlowLayout.CENTER, 5, 5); frame.setLayout(fl);//45 * 设置窗体的布局方式为流式布局46 */

47

48 BorderLayout bl = new BorderLayout();//实例化BorderLayout边框 布局类的对象

49 frame.setLayout(bl);//JFrame窗体容器组件默认的布局方式就是BorderLayout边框布局50

51 //5.实例化元素组件类的对象,添加到窗体上(组件的添加要在窗体可见之前完成)。52

53 //实例化ImageIcon图标类的对象,该对象加载磁盘上的图片到内存中,组件就可以显示ImageIcon的对象

54 ImageIcon icon = new ImageIcon("这里放图片地址");55 //实例化JLabel标签元素组件类的对象,组件显示icon图标对象

56 JLabel labIcon = newJLabel(icon);57 //将labIcon添加到窗体的北边

58 frame.add(labIcon, BorderLayout.NORTH);59

60 //实例化JLabel标签元素组件类的对象,组件显示"账号:"文字

61 JLabel labName = new JLabel("账号:");62 //将labName添加到窗体上

63 frame.add(labName, BorderLayout.WEST);//在边框布局中,将组件添加到窗体的西边64

65 // //实例化JLabel标签元素组件类的对象,组件显示"密码:"文字66 //JLabel labPassword = new JLabel("密码:");67 // //将labPassword添加到窗体上68 //frame.add(labPassword, BorderLayout.SOUTH);//在边框布局中,将组件添加到窗体的南边69

70 // //实例化JButton标签元素组件类的对象,组件显示"东边:"文字71 //JButton labeast = new JButton("东边:");72 // //将labeast添加到窗体上73 //frame.add(labeast, BorderLayout.EAST);//在边框布局中,将组件添加到窗体的东边74

75 //实例化JPanel面板容器组件类的对象

76 JPanel centerPane = newJPanel();77 centerPane.setLayout(newFlowLayout());78

79

80 JTextField textName = newJTextField();81 textName.setPreferredSize(new Dimension(180,30));//此方法不能用于JFrame。

82 centerPane.add(textName);83

84 String [] array = {"257037851"};85 JComboBox cbItem = newJComboBox(array);86 cbItem.setPreferredSize(new Dimension(180,30));87 centerPane.add(cbItem);88

89 frame.add(centerPane);90

91 frame.setVisible(true);//设置窗体为可见,这个是必须写的,且必须在最后,否则会看不到一些组件

92 }93

94 }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值