JAVA 图形界面开发基础详解

/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 [email protected]*/

与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 package xxj.login;
 2
 3 import java.awt.BorderLayout;
 4 import java.awt.Dimension;
 5 import java.awt.FlowLayout;
 6
 7 import javax.swing.ImageIcon;
 8 import javax.swing.JButton;
 9 import javax.swing.JComboBox;
10 import javax.swing.JFrame;
11 import javax.swing.JLabel;
12 import javax.swing.JPanel;
13 import javax.swing.JTextField;
14
15 /**
16  * 1.定义Login类,
17  */
18 public class Login {
19
20     /**
21      * 1.在类中定义主函数和
22      */
23     public static void main(String[] args) {
24         // 2.在主函数中实例化Login类的对象,然后用对象名调用初始化界面的方法。
25         Login login = new Login();
26         login.initUI();
27     }
28
29     /**
30      * 1.初始化界面的方法。
31      */
32     public void initUI() {
33         // 3.在initUI方法中,实例化JFrame窗体容器组件类的对象。
34         JFrame frame = new JFrame();
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 = new
44          * 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 = new JLabel(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 = new JPanel();
77         centerPane.setLayout(new FlowLayout());
78
79
80         JTextField textName = new JTextField();
81         textName.setPreferredSize(new Dimension(180,30));//此方法不能用于JFrame。
82         centerPane.add(textName);
83
84         String [] array = {"257037851"};
85         JComboBox  cbItem = new JComboBox(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 }

原文地址:https://www.cnblogs.com/csu-lmw/p/9251821.html

时间: 2024-11-13 00:14:49

JAVA 图形界面开发基础详解的相关文章

Java 图形界面开发--图文并茂建立学生管理系统

图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作. 这是本人在学习java图形界面开发阶段一步一步实现的超级简易的学生管理系统.虽然说不入大神法眼,但这确实是费了自己不少心血.对于我这样的菜鸟来说,考虑不周到,一不小心就Exception,然后就是自己调呀调.在此分享出来希望对和我一样的菜鸟有帮助. 程序完整代码下载地址见: https://github.com/chaohuangtianjie994/The-Sys

Java图形界面开发—简易登录注册小程序

登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库sqlserver.单例模式.正则表达式以及图形化开发等知识. 1.在登录界面,可以登录或者注册用户. 注册用户界面,按照正则表达式规定的格式要求来输入信息,若有误,则重新输入. 2.点击注册,首先连接SQLserver数据库,连接成功则会判断该用户名是否已经存在,若存在,则给出提示.反之则进行注册

Shell图形界面dialog应用详解

相信大部分朋友都使用过Centos Redhat的setup工具,会弹出向导式图形菜单供我们配置Linux系统,如果你想为你的脚本程序增色添彩,dialog工具无疑是个非常好的选择.dialog工具以一种简洁的方式来润色你的脚本程序,是你的脚本程序看起来更加的友好,setup工具如下图所示. Liunx 下的dialog 工具是一个可以和shell脚本配合使用的文本界面下的创建对话框的工具.每个对话框提供的输出有两种形式:   1.  将所有输出到stderr 输出,不显示到屏幕.   2. 

Java GUI图形界面开发工具

Applet 应用程序     一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需安装 4.平台无关性 5.安全 Applet 的生命周期 编写一个 Applet 程序,需要继承 JApplet 类,这个类提供了 Applet 程序的基本行为方式,只需要覆写其中的方法就可以完成我们自己的 Applet 程序. 生命周期 1.初始化阶段:init 方法 在 Applet 执行之初,

CSDN Android客户端开发(二):详解如何基于Java用Jsoup爬虫HTML数据

本文参考链接详细介绍如何使用Jsoup包抓取HTML数据,是一个纯java工程,并将其打包成jar包.希望了解如何用java语言爬虫网页的可以看下. 杂家前文就又介绍用HTTP访问百度主页得到html的string字符串,但html的文本数据如果不经过处理就是个文本字符串没有任何效果的.所谓的浏览器就是负责将文本的html"翻译"成看到的界面.在前文有介绍,这个csdn的客户端app分首页.业界.移动.研发.程序员.云计算五大类.以业界为例,http://news.csdn.net/ 

《Tomcat与Java Web开发技术详解》思维导图

越想构建上层建筑,就越觉得底层基础很重要.补课系列. 书是良心书,就是太基础了,正适合补课. [纯文字版] Tomcat与Java Web开发技术详解 Servlet Servlet的生命周期 初始化 1Servlet容器加载Servlet类 2Servlet容器创建ServletConfig,初始化配置信息 3Servlet容器创建Servlet对象 4Servlet容器调用Servlet对象的init(ServletConfig) 时机:首次被请求或配置了<load-on-startup>

Java网络编程和NIO详解开篇:Java网络编程基础

Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为我们拥有网络.网络是一个神奇的东西,它改变了你和我的生活方式,改变了整个世界. 然而,网络的无标度和小世界特性使得它又是复杂的,无所不在,无所不能,以致于我们无法区分甚至无法描述. 对于一个码农而言,了解网络的基础知识可能还是从了解定义开始,认识OSI的七层协议模型,深入Socket内部,进而熟练地

JAVA与图形界面开发(Applet应用程序、AWT库、Swing)

Applet 1)简单说,Applet就是嵌入到网页中的小程序,Java代码. 2)编写Applet程序,要继承JApplet类,并根据自己需要覆写相关方法(init.start.stop.destroy<可选>)即可. 3)Applet生命周期: 初始化阶段:init方法(自动被调用,完成图形组件的初始化和版面分配) 执行阶段:start方法(当Applet当前窗口被激活时,执行相应代码) 终止阶段:stop方法(关闭Applet程序时) 释放资源:destroy方法 4)向Applet里添

《iOS 7 应用开发实战详解》

<iOS 7 应用开发实战详解> 基本信息 作者: 朱元波    管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5月 开本:16开 页码:382 版次:1-1 所属分类:计算机 > 软件与程序设计 > 移动开发 > iPhone 更多关于>>><iOS 7 应用开发实战详解> 编辑推荐 新版本 全面讲解了iOS 7开发的各种技术 热门技术 基本控件.数据存储.多场景处理.界