在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中,很多包的功能已经提前写好,我们只需要查阅资料调用我们需要的包来实现相关的功能~

JAVA中简单图形界面的创建相关推荐

  1. 在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象

    在 Java 中,为什么需要创建内部类对象之前需要先创建外部类对象   我们知道,在 Java 中,创建一个内部类对象之前,需要它的一个外部类对象.这是因为内部类可能使用外部类的数据.   在内部类中 ...

  2. Java中创建线程需要使用的类_如何通过使用Java中的匿名类创建线程?

    甲线程是可以同时与该程序的其他部分被执行的功能.所有Java程序都有至少一个称为主线程的线程,该线程由Java虚拟机(JVM)在程序启动时由主线程调用main()方法创建. 在Java中,我们可以通过 ...

  3. java中引导页面的,设计模式之模板模式引导篇

    在讲模板模式原理前,我们按照惯例,先来个生活中例子.茶馆需要开发一个自动的泡咖啡和泡茶的程序. 来源:凯哥Java(kaigejava) 我们先来看看泡咖啡和泡茶的步骤: 我们根据上图写代码实现: 泡 ...

  4. java中怎样创建多个对象,java中StringBuilder.appent方法创建几个对象

    在Java中StringBuilder是继承AbstractStringBuilder,在AbstractStringBuilder是byte[] value; 存放字符内容 public Abstr ...

  5. java中引导页面的,Android实现欢迎引导页面

    现在的大多数应用都会有一个欢迎引导页面, 需求分析: 程序安装后第一次启动: 启动页-->功能引导页-->应用主页 以后启动: 启动页-->应用主页 实现原理: 用SharedPre ...

  6. java中io流如何创建一个文件_,Java中Io流操作-File类的常用操作-创建文件,创建文件夹...

    package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...

  7. java中实现创建目录、创建文件的操作

    一.创建目录 mkdir()--仅创建一层目录,返回true或false. mkdirs()--创建一层或多层目录,返回true或false.   也就是,在通常情况下,使用mkdirs()即可满足创 ...

  8. java中对Excel的创建、样式修改

    创建excel文件 public static String createExcel(ArrayList<String> list, ArrayList<ArrayList<S ...

  9. java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)

    [Java教程]js页面刷新之实现框架内外刷新(整体.局部) 0 2016-10-12 12:00:56 这次总结的是框架刷新: 框架内外的按钮均可以定义网页重定向, 框架内部页面的按钮可以实现局部刷 ...

最新文章

  1. 学习旧岛小程序 (5) observer 函数中修改属性的值
  2. easyuI企业管理系统-实战三 添加功能
  3. Asp.net 字符串操作基类(安全,替换,分解等)
  4. XCode5.1.1怎样实现代码块自己主动排版
  5. 百度发布小度智能音箱大金刚:秒变投屏电视 售价199元
  6. Python——调用shell命令的三种方法
  7. asp.net 报表页面模板_Stimulsoft ASP.NET MVC报表教程:在设计器中保存报表模板
  8. zookeeper学习(二)之java客户端API建立连接
  9. 互联网寒冬,腾讯人均发放巨额奖励,更是在号召「共同富裕」
  10. C# 寻找数组中的最大子数组
  11. python 画图 线标注_Python中画图时候的线类型
  12. VSCode配置触动精灵开发环境
  13. 开源软件中的TOP10
  14. 浩辰CAD 2019 v190128官方免费版
  15. 深度信念网络_深度学习如何感知跟踪位置变化
  16. 计算机考研数学考数学二的专业,2018考研数学:过来人教你如何数学二考到130!...
  17. 汽车芯片TJA1057GTK/3高速 CAN 收发器3 毫米 x 3 毫米 x 0.85 毫米
  18. 干货满满的 GopherChina2021 北京大会 PPT is coming
  19. 记录微机大作业-----流水灯
  20. 计算机c盘program,Program Files是什么文件夹?Win7 C盘Program Files可以删除吗?

热门文章

  1. luffy-16/订单表设计,立即付款接口/前端,支付成功get回调用户展示,支付成功post回调修改订单状态
  2. OpenRisc-6-wishbone实验
  3. 【UEFI实战】EDK编译和使用(更新版)
  4. android极简手机壁纸,极简桌面安卓版
  5. 靖哥哥教你如何安装chrome浏览器离线插件
  6. java获取文件大小的方法
  7. Sketch的插件管理
  8. Nexus默认账号密码
  9. 新安装Windows 2012 启动报错0xc0000225
  10. e.pageX、e.clientX、e.screenX、e.offsetX的区别以及元素的一些CSS属性