JAVA中简单图形界面的创建

在java中提供了两套图形界面类:AWT组件和SWING组件。

AWT组件jdk1.0的时候就推出的图形界面类,它是位于java.awt包下的类。当时在开发AWT组件时,采用C和C++的语言,并且还调用了操作系统底层的函数来实现AWT组件,也是因为实现语言和操作系统底层函数的调用导致了AWT组件无法实现跨平台性。

SWING组件是AWT组件的扩展,SWING组件是jdk1.4的时候推出的图形界面类,它是位于javax.swing包下的类。SWING组件是基于AWT组件的基础上,采用纯java语言实现的一条新的跨平台组件。

不管使用AWT组件还是SWING,我们开发的应用程序都是可以跨平台的。
首先我们来了解一下创建图形界面时常见的组件类和辅助类。

(1)容器组件类:容器上能添加其他的组件,那么该组件就是容器组件。如果要实现顶级容器,首先要有一个顶级容器。

 JFrame  窗体容器组件类

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

 JLabel  标签元素组件类: 显示文字或图片,也可以文字和图片一起显示;
 JTextField  文本输入框元素组件类:  接收用户输入的信息,然后将输入的信息显示出来;
 JPasswordField  密码输入框元素组件类:  接收用户输入的信息,然后将输入的信息显示出来;
 JButton  按钮元素组件类: 显示文字或图片,也可以文字和图片一起显示,但是还有按下和释放的效果。

上述的容器组件类和元素组件类都是属于SWING组件中的类,在使用的时候要记得加上包名。例如:javax.swing.JFrame,或者使用import javax.swing.JFrame;如果想要使用AWT组件,只需将SWING组件中的类名去掉一个字母”J”,例如:java.awt.Frame,或者使用import java.awt.Frame。

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

 javax.swing.ImageIcon   图标类,加载磁盘上的图片文字到内存中;
 java.awt.FlowLayout	 流式布局类,布局效果类似于Word文档的布局效果,但是不能像Word一样用回车换行;
 java.awt.Dimension		 封装组件宽度和高度的类

下面介绍一下如何实现一个简单的登录界面。
(1)首先定义一个Login,在类中定义程序的入口主函数和初始化界面的方法;
(2)在主函数中,实例化Login类的对象,然后用对象名调用初始化界面的方法;
(3)在初始化界面的方法中,实例化JFrame窗体容器组件类的对象;
(4)设置窗体对象的属性值:标题、大小、显示位置、关闭操作、布局、可见、…;
(5)实例化元素组件类的对象,然后将组件对象添加到窗体上(组件添加要在窗体可见之前)。

//**导入所需的包**
package hello;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

@SuppressWarnings("unused")
public class Login {
  public static void main(String[]args) {
	  Login login=new Login();//*在主函数中,实例化Login类的对象,然后用对象名调用初始化界面的方法*
	  login.initUI();
  }
  public void initUI() {
	  JFrame frame=new JFrame();
	  frame.setTitle("Login");
	  frame.setSize(500,500);
	  frame.setLocation(250, 300);
	  FlowLayout f1=new FlowLayout(FlowLayout.CENTER);
	  frame.setLayout(f1);
	  frame.setDefaultCloseOperation(3);
	  
	  ImageIcon icon = new ImageIcon("C:\\Users\\Mypc\\Pictures\\Saved Pictures\\mmexport1527082718882.jpg");
	  JLabel labelIcon = new JLabel(icon);
	  frame.add(labelIcon);
	  JLabel labelName = new JLabel("账号:");
	  frame.add(labelName);
	  JTextField textName = new JTextField();
	  textName.setPreferredSize(new Dimension(410, 30));
	  frame.add(textName);

		
	  JLabel labelname=new JLabel("密码:");
	  frame.add(labelname);
	  JTextField textname1=new JTextField();
	  textname1.setPreferredSize(new Dimension(410,30));
	  frame.add(textname1);
	
	  JButton buttonname=new JButton("登录");
	  frame.add(buttonname);
	  JButton buttonname1=new JButton("取消");
	  frame.add(buttonname1);
		
	  frame.setVisible(true);//*设置登录界面可见*
			  
  }
}

根据上面的方法,一个简单的图形界面就做好了:

在这里插入图片描述
在java中,很多包的功能已经提前写好,我们只需要查阅资料调用我们需要的包来实现相关的功能~

  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值