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 }
java图形界面详解_JAVA 图形界面开发基础详解相关推荐
- java课程设计总结迷宫_Java课程设计走迷宫详解.doc
Java语言与面向对象技术 课程设计报告 ( 2014 -- 2015年度第 1 学期) 走迷宫 目 录 目 录2 1 概 述1 1.1 课程设计目的1 1.2 课程设计内容1 2 系统需求分析2 2 ...
- python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...
Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...
- springmvc教程--注解开发基础详解
springmvc教程系列 springmvc史上最好教程(2) springmvc史上最好教程(1) 一. 注解开发-基础 1.1 需求 使用springmvc+mybatis架构实现商品信息维护. ...
- java图形界面编程 房子_Java图形界面编程
AWT简介 AWT是抽象窗口工具箱:其中包含了图形界面开发的基本类库. AWT主要包括:容器,布局管理器,事件处理,基本组件四个部分. 容器:用于放置基本组件 布局管理器:对容器中的组件进行布局管理 ...
- java图形界面设计代码_Java图形界面设计
一.总述 Java的图形用户界面由各种组件(component)构成,它们主要位于java.awt包与javax.swing包中.Swing与AWT最大的不同是,Swing在实现时,不包含任何本地代码 ...
- java双击添加文本框_java图形界面 怎么文本框要用鼠标点一下才出来
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.ut ...
- java界面设计器_java 图形界面设计制作计算器
在NETBEANS里写的我的代码如下:JSQ:packagewe;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicc ...
- java vm 远程监控配置文件_Java VisualVM监控远程JVM(详解)
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualV ...
- java中匿名内部类详解_java 中匿名内部类的实例详解
搜索热词 java 中匿名内部类的实例详解 原来的面貌: class TT extends Test{ void show() { System.out.println(s+"~~~哈哈&q ...
最新文章
- C/C++ 混合编程
- fullgc一小时发生一次的原因
- PHP Mysql-创建数据表
- 有这个OCR程序,不用再买VIP了,Python 调用百度OCR API
- leetcode - 746. 使用最小花费爬楼梯
- php curl https_PHP FFI:一种全新的PHP扩展方式
- JS 输入框智能提示
- 《重构》笔记---坏代码的味道与处理
- 64位平台C/C++开发注意事项
- 取整函数(ceil、floor、round)
- Android 10关机界面定制
- wnmp支持php文件,Windows下配置nginx+php(wnmp)
- 出差经历的人在囧途那一天
- 驰骋工作流引擎-督查督办系统
- Python函数 - - reverse()和reversed()
- 疫情问题网络舆情监测方法
- 【keepass】利用keepassxc-browser浏览器扩展和keepassnatmsg插件实现密码自动填充(KeePassHttp-Connector/KeePassHttp)
- 酒醉之后你最思念谁?
- ettercap文本模式+driftnet监控图片瑞星防火墙无效
- 【服务器】XShell 使用汇总
热门文章
- 【电脑讲解】NVIDIA发布GeForce RTX SUPER系列显卡,游戏玩家福利来了!
- HTML5导入*.skp *.kmz模型的方法,类似sketchup,利用HTML5的3D性能将模型显示出来,请教一下,怎么弄啊
- 基于Redis实现延时队列
- hybrid简单了解
- Java Card——看上去很美
- android 11.0 SystemUI导航栏 添加虚拟按键(一)
- 创建组groupadd_如何在Linux中创建组– groupadd命令
- 2018年年末的一些思考
- 欧洲多国对 ChatGPT 展开调查;高通被韩国罚款超50亿;能用ChatGPT 来炒股了?丨每日大事件...
- js for、forEach, 跳出多层循环