与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)实例化元素组件类的对象,添加到窗体上(组件的添加要在窗体可见之前完成)。

 package xxj.login;

 import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout; import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField; /**
* 1.定义Login类,
*/
public class Login { /**
* 1.在类中定义主函数和
*/
public static void main(String[] args) {
// 2.在主函数中实例化Login类的对象,然后用对象名调用初始化界面的方法。
Login login = new Login();
login.initUI();
} /**
* 1.初始化界面的方法。
*/
public void initUI() {
// 3.在initUI方法中,实例化JFrame窗体容器组件类的对象。
JFrame frame = new JFrame();
// 4.设置窗体容器组件的属性值:标题、大小、显示位置、关闭操作、禁止调整组件大小、布局、可见。
frame.setTitle("Login");// 设置窗体的标题属性值
frame.setSize(380, 320);// 设置窗体的大小属性值,单位是像素
frame.setLocationRelativeTo(null);// 设置窗体显示在屏幕的中央
frame.setDefaultCloseOperation(3);// 设置窗体的关闭操作,3表示关闭窗体退出程序。
frame.setResizable(false);// 设置禁止调整窗体的大小 /**
* // 实例化FlowLayout流式布局类的对象 FlowLayout fl = new
* FlowLayout(FlowLayout.CENTER, 5, 5); frame.setLayout(fl);//
* 设置窗体的布局方式为流式布局
*/ BorderLayout bl = new BorderLayout();// 实例化BorderLayout边框 布局类的对象
frame.setLayout(bl);// JFrame窗体容器组件默认的布局方式就是BorderLayout边框布局 // 5.实例化元素组件类的对象,添加到窗体上(组件的添加要在窗体可见之前完成)。 // 实例化ImageIcon图标类的对象,该对象加载磁盘上的图片到内存中,组件就可以显示ImageIcon的对象
ImageIcon icon = new ImageIcon("这里放图片地址");
// 实例化JLabel标签元素组件类的对象,组件显示icon图标对象
JLabel labIcon = new JLabel(icon);
// 将labIcon添加到窗体的北边
frame.add(labIcon, BorderLayout.NORTH); // 实例化JLabel标签元素组件类的对象,组件显示"账号:"文字
JLabel labName = new JLabel("账号:");
// 将labName添加到窗体上
frame.add(labName, BorderLayout.WEST);// 在边框布局中,将组件添加到窗体的西边 // // 实例化JLabel标签元素组件类的对象,组件显示"密码:"文字
// JLabel labPassword = new JLabel("密码:");
// // 将labPassword添加到窗体上
// frame.add(labPassword, BorderLayout.SOUTH);// 在边框布局中,将组件添加到窗体的南边 // // 实例化JButton标签元素组件类的对象,组件显示"东边:"文字
// JButton labeast = new JButton("东边:");
// // 将labeast添加到窗体上
// frame.add(labeast, BorderLayout.EAST);// 在边框布局中,将组件添加到窗体的东边 //实例化JPanel面板容器组件类的对象
JPanel centerPane = new JPanel();
centerPane.setLayout(new FlowLayout()); JTextField textName = new JTextField();
textName.setPreferredSize(new Dimension(180,30));//此方法不能用于JFrame。
centerPane.add(textName); String [] array = {"257037851"};
JComboBox cbItem = new JComboBox(array);
cbItem.setPreferredSize(new Dimension(180,30));
centerPane.add(cbItem); frame.add(centerPane); frame.setVisible(true);// 设置窗体为可见,这个是必须写的,且必须在最后,否则会看不到一些组件
} }

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

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

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

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

    登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库 ...

  3. JAVA 23种开发模式详解(代码举例)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  4. Java图形界面开发—简易记事本

          在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: ...

  5. Java图形界面开发—列出指定目录

    代码如下: package com.packageTemp; import javax.swing.*; import java.awt.*; import java.awt.event.*; imp ...

  6. Java+大数据开发——HDFS详解

    1. HDFS 介绍  • 什么是HDFS 首先,它是一个文件系统,用于存储文件,通过统一的命名空间--目录树来定位文件. 其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角 ...

  7. ubuntu16.04里如何正确添加用root用户来登录图形界面(图文详解)

    不多说,直接上干货! Ubuntu版本都默认不允许使用root登录,必须要改配置文件. 第一步: 首先设置root密码,利用现有管理员帐户登陆Ubuntu,在终端执行命令:sudo passwd ro ...

  8. Java GUI图形界面开发工具

    Applet 应用程序     一种可以在 Web 浏览器中执行的小程序,扩展了浏览器中的网页功能. 缺: 1.需要下载 Applet 及其相关文件 2.Applet 的功能是受限制的 优: 3.无需 ...

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

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

随机推荐

  1. CF1012C Hills

    显然的DP是,dp[i][j][val] val是1e6的 简化 发现,其实决策很有限,最优解的i-1的val选择有限 题解 这里的一个trick是,f[i][j][0]转移不考虑a[i]和a[i-1 ...

  2. 使用solrJ操作solr常用方法 【注释非常详细,非常好】

    转: 使用solrJ操作solr常用方法 2017年08月07日 22:49:06 成都往右 阅读数:8990   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  3. maven 整合支付宝,导入alipay-sdk-java包到本地仓库

    maven 整合支付宝,导入alipay-sdk-java包到本地仓库   1.环境变量添加: MAVEN_HOME:(maven位置) M2_HOME:(maven位置) PATH:%M2_HOME ...

  4. 用vue前后端分离项目开发记录

    一:软件安装 1.1 检测node 是否安装 1.2 安装淘宝镜像 cnpm 1.3 安装vue-cli 1.4 检查是否安装vue-cli脚手架成功 1.5安装webpack 模块管理工具 二:创建 ...

  5. <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible' />

    代码一:<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> http-eq ...

  6. 在同一个表中将varchar2类型的数据转存到blob类型的字段中

    用一条修改语句即可:update t_content set f_body=rawtohex(f_check) where f_type in (0,4)此处须用rawtohex()函数将f_chec ...

  7. hdu 2433 Travel

    http://acm.hdu.edu.cn/showproblem.php?pid=2433 题意: 求删除任意一条边后,任意两点对的最短路之和 以每个点为根节点求一个最短路树, 只需要记录哪些边在最 ...

  8. SimpleRoundedImage-不使用mask实现圆角矩形图片

    1.一张图片是如何显示在屏幕上的 一张图片渲染到unity界面中的大致流程. 2.我们要做什么 我们要做的就是在CPU中将图片的矩形顶点数据修改成圆角矩形的顶点信息,之后Unity会将修改后的顶点数据 ...

  9. Java Service Wrapper将java程序设置为服务

    有时候我们希望我们java写的程序作为服务注册到系统中,Java Service Wrapper(下面简称wrapper)是目前较为流行的将Java程序部署成Windows服务的解决方案, 本文将讨论 ...

  10. MFC小型工具通用界面框架CLIST控件+右键菜单功能

    MFC-小型工具通用界面框架 0x1 场景 由于工作需要我会写代码开发工具给客户或者同事用.代码都能实现,但写个黑乎乎的命令行工具给别人用确实显得不够专业,用别人写好的成型工具又担心有后门. 所以掌握 ...