一、java的图形界面

1.awt    java.awt

jdk1.4之前推出的图形界面,用c/c++编写,跨平台性不好

2.swing  javax.swing

jdk1.4时推出的图形界面,跨平台性好

二、常用的组件

1.容器组件

JFrame    窗体类 最顶级的容器(默认布局为边框布局,不能自己互相添加)

JPanel    面板类 最灵活的容器(可以自己互相添加)

2.元素组件

JLabel   标签类

JTextField  文本输入框类(可以设置框内字符、输入框长度)

JPasswordField 密码输入框类(框内字符会被特定字符代替)

JCheckBox  复选框类

JComboBox   下拉框类

JButton    按钮类

容器和组件都是swing包下的类。javax.swing.JFrame

三、常用的布局

1.布局类只能用在容器中。设置布局时需用setLayout()

BorderLayout  边框布局(将窗体分为上下左右中五个区域,调用时分别.NORTH,.SOUTH,.WEST,.EAST,.CENTER,若未标明表示CENTER,未添加布局时默认为边框布局加在中央)

FlowLayout    流式布局(如同文本文档一样一行一行排列,排列满换行,默认方向为从左向右,可以设置对齐方向)

GridLayout    网格布局(可以设置几列几行,间距)

这三种都是位于awt包下的类。java.awt.***Layout

四、简单登录界面的实现

1.新建一个xxx类(Login),在类中定义主函数。

2.在类中定义一个初始化界面的方法(initUI)

3.在初始化界面的方法中,实例化一个顶级容器(JFrame)类的对象。

4.设置JFrame对象的属性值(标题,大小,显示位置,关闭退出程序,禁止调整大小,可见,该步完成对一个窗体的创建)

5.实例化元素组件对象,将对象添加到窗体上

6.在主函数中实例化Login类的对象,用对象名调用初始化界面的方法。

注:setDefaultCloseOperation()括号中可选数字,3是关闭时退出程序。0是不关闭。1是隐藏,2是关闭时程序继续工作。

setVisible(true)必须放在最后才能显示所有组件。true为可见。

setSize()大小为像素点的大小。默认起点为左上角。

五、代码

1.简单的登录界面

可以用流式布局或者边框布局。

Java代码

package cn.wz.study0718;
//定义一个登录界面
public class showFrameqq { // 入口主函数 public static void main(String[] args) {
// 实例化showFrameqq类的对象
showFrameqq showqq = new showFrameqq();
//调用qq界面的方法
showqq.initGUI(); }
//定义一个qq界面的方法
public void initGUI(){
//实例化一个JFrame类的对象
javax.swing.JFrame jf = new javax.swing.JFrame();
//设置窗体的标题属性
jf.setTitle("QQ登录界面");
//设置窗体的大小属性
jf.setSize(300,200);
//设置窗体的位置属性
jf.setLocation(450,200);
//设置窗体关闭时退出程序
jf.setDefaultCloseOperation(3);
//设置禁止调整窗体的大小
jf.setResizable(false); //实例化一个布局类的对象
java.awt.FlowLayout fl = new java.awt.FlowLayout();
//设置窗体的布局方式为流式布局
jf.setLayout(fl);
//实例化一个JLabel标签类的对象
javax.swing.JLabel jlaName = new javax.swing.JLabel(" ");
//将jlaName对象添加到容器JFrame对象上
jf.add(jlaName);
//实例化一个JTextField对象
javax.swing.JTextField jteName = new javax.swing.JTextField("账号",20);
//将jteName对象添加到容器JFrame对象上
jf.add(jteName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName2 = new javax.swing.JLabel("注册账号");
//将jlaName2对象添加到容器JFrame对象上
jf.add(jlaName2);
//实例化一个JPasswordField对象
javax.swing.JPasswordField jpaName = new javax.swing.JPasswordField("请输入密码",20);
//将jpaName对象添加到容器JFrame对象上
jf.add(jpaName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName3 = new javax.swing.JLabel("找回密码");
//将jlaName3对象添加到容器JFrame对象上
jf.add(jlaName3);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName = new javax.swing.JCheckBox("记住密码");
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName2 = new javax.swing.JCheckBox("自动登录");
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName2);
//实例化一个JCheckBox对象
javax.swing.JButton jbuName = new javax.swing.JButton(" 登 录 ");
//将jButton对象添加到容器JFrame对象上
jf.add(jbuName); jf.setVisible(true);
} } package cn.wz.study0718;
//定义一个登录界面
public class showFrameqq { // 入口主函数 public static void main(String[] args) {
// 实例化showFrameqq类的对象
showFrameqq showqq = new showFrameqq();
//调用qq界面的方法
showqq.initGUI(); }
//定义一个qq界面的方法
public void initGUI(){
//实例化一个JFrame类的对象
javax.swing.JFrame jf = new javax.swing.JFrame();
//设置窗体的标题属性
jf.setTitle("QQ登录界面");
//设置窗体的大小属性
jf.setSize(300,200);
//设置窗体的位置属性
jf.setLocation(450,200);
//设置窗体关闭时退出程序
jf.setDefaultCloseOperation(3);
//设置禁止调整窗体的大小
jf.setResizable(false);
//实例化一个布局类的对象
java.awt.FlowLayout fl = new java.awt.FlowLayout();
//设置窗体的布局方式为流式布局
jf.setLayout(fl);
//实例化一个JLabel标签类的对象
javax.swing.JLabel jlaName = new javax.swing.JLabel(" ");
//将jlaName对象添加到容器JFrame对象上
jf.add(jlaName);
//实例化一个JTextField对象
javax.swing.JTextField jteName = new javax.swing.JTextField("账号",20);
//将jteName对象添加到容器JFrame对象上
jf.add(jteName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName2 = new javax.swing.JLabel("注册账号");
//将jlaName2对象添加到容器JFrame对象上
jf.add(jlaName2);
//实例化一个JPasswordField对象
javax.swing.JPasswordField jpaName = new javax.swing.JPasswordField("请输入密码",20);
//将jpaName对象添加到容器JFrame对象上
jf.add(jpaName);
//实例化一个JLabel对象
javax.swing.JLabel jlaName3 = new javax.swing.JLabel("找回密码");
//将jlaName3对象添加到容器JFrame对象上
jf.add(jlaName3);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName = new javax.swing.JCheckBox("记住密码");
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName);
//实例化一个JCheckBox对象
javax.swing.JCheckBox jchName2 = new javax.swing.JCheckBox("自动登录");
//将jchName3对象添加到容器JFrame对象上
jf.add(jchName2);
//实例化一个JCheckBox对象
javax.swing.JButton jbuName = new javax.swing.JButton(" 登 录 ");
//将jButton对象添加到容器JFrame对象上
jf.add(jbuName);
jf.setVisible(true);
} }

  

2.简单的计算器界面

分析:使用网格布局。

Java代码

package cn.wz.study0718;
//定义一个计算器界面
public class showCalculaterFrame { //入口主函数
public static void main(String[] args) {
//实例化一个showCalculaterFrame类的对象
showCalculaterFrame showCal = new showCalculaterFrame();
//调用计算器界面的方法
showCal.initGUI(); }
//定义一个计算器界面的方法
public void initGUI(){
//实例化一个JFrame类的对象
javax.swing.JFrame jf = new javax.swing.JFrame();
//设置窗体的标题属性
jf.setTitle("计算器");
//设置窗体的大小属性
jf.setSize(250,350);
//设置窗体的位置属性
jf.setLocation(400,200);
//设置窗体关闭时退出程序
jf.setDefaultCloseOperation(3);
//设置禁止调整窗体的大小
jf.setResizable(false); //实例化一个JTextField文本框类的对象
//javax.swing.JTextField jteName = new javax.swing.JTextField(20);
//将jteName添加到容器JFrame上
//jf.add(jteName);
//实例化一个布局类对象
java.awt.GridLayout gr = new java.awt.GridLayout(5,4);
//设置窗体的布局方式为网格布局
jf.setLayout(gr);
//实例化十九个个JButton对象、一个JTextField对象
javax.swing.JButton jb1 = new javax.swing.JButton("1");
javax.swing.JButton jb2 = new javax.swing.JButton("2");
javax.swing.JButton jb3 = new javax.swing.JButton("3");
javax.swing.JButton jb4 = new javax.swing.JButton("4");
javax.swing.JButton jb5 = new javax.swing.JButton("5");
javax.swing.JButton jb6 = new javax.swing.JButton("6");
javax.swing.JButton jb7 = new javax.swing.JButton("7");
javax.swing.JButton jb8 = new javax.swing.JButton("8");
javax.swing.JButton jb9 = new javax.swing.JButton("9");
javax.swing.JButton jb0 = new javax.swing.JButton("0");
javax.swing.JButton jba = new javax.swing.JButton("+");
javax.swing.JButton jbb = new javax.swing.JButton("-");
javax.swing.JButton jbc = new javax.swing.JButton("*");
javax.swing.JButton jbd = new javax.swing.JButton("/");
javax.swing.JButton jbe = new javax.swing.JButton("=");
javax.swing.JButton jbf = new javax.swing.JButton("AC");
javax.swing.JButton jbg = new javax.swing.JButton("sqrt");
javax.swing.JButton jbh = new javax.swing.JButton("1/x");
javax.swing.JButton jbi = new javax.swing.JButton(".");
javax.swing.JTextField jte = new javax.swing.JTextField();
//将JButton对象、JTextField对象添加到容器JFrame上
jf.add(jte);
jf.add(jbf);
jf.add(jbg);
jf.add(jbh);
jf.add(jb1);
jf.add(jb2);
jf.add(jb3);
jf.add(jba);
jf.add(jb4);
jf.add(jb5);
jf.add(jb6);
jf.add(jbb);
jf.add(jb7);
jf.add(jb8);
jf.add(jb9);
jf.add(jbc);
jf.add(jb0);
jf.add(jbi);
jf.add(jbe);
jf.add(jbd); //设置窗体是否可见
jf.setVisible(true); } }

  转自:http://www.bdqn.cn/news/201307/10424.shtml

java---Swing界面开发总结的更多相关文章

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

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

  2. JAVA 图形界面开发基础详解

    与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...

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

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

  4. Java Swing界面编程(1)

    写多了jsp,对于页面式的系统已经写烦了,本人也開始着手于java swing的学习,作为菜鸟,仅想用博客记录下我的swing学习的历程.话不多说,首先開始我的第一个窗体化程序. 下面给出源码: pa ...

  5. 「艺蜂酒店管理系统」 · Java Swing + mysql 开发 学生毕业设计项目

    Java  Swing在社会上基本用不到,但是任有学校拿来当做结课设计,只是博主在校期间的一个项目.如果在部署过程中有问题可以加我qq68872185. 码云仓库地址:https://gitee.co ...

  6. Java Swing界面编程(31)---菜单条:JMenu

    package com.beyole.test; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMe ...

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

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

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

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

  9. 「旅游信息管理系统」 · Java Swing + MySQL 开发

    代码写得烂,写博客纯属记录! 微信公众号:BugLass 码云仓库地址:https://gitee.com/ynavc/tourism_sys 源代码及文档打包下载:https://download. ...

  10. Java Swing界面编程(27)---JRadioButton事件处理

    在单选button操作中.能够使用ItemListener接口进行事件的监听. package com.beyole.util; import java.awt.Container; import j ...

随机推荐

  1. [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

    最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的“原图”等,此时尝试学习Phantomjs和CasperJS来解决这个问题 ...

  2. Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc

    Atitit. 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc 1. #-------常用 游戏类型 1 2. 街机的历史 2 3. #=========== ...

  3. paip.判断文件是否存在uapi python php java c#

    paip.判断文件是否存在uapi python php java c# ==========uapi file_exists exists() 面向对象风格:  File.Exists 作者: 老哇 ...

  4. TF Boys (TensorFlow Boys ) 养成记(六)

    圣诞节玩的有点嗨,差点忘记更新.祝大家昨天圣诞节快乐,再过几天元旦节快乐. 来继续学习,在/home/your_name/TensorFlow/cifar10/ 下新建文件夹cifar10_train ...

  5. JS的event对象--知识点总结

    Event描述:event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. 需要注意的是:event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有 ...

  6. 淘宝开放平台TOP测试环境

    沙箱测试环境 淘宝沙箱环境是淘宝开放平台(TOP)提供给独立软件开发商(ISV)的测试环境.数据完全独立,大部分API已经部署到该环境中供ISV进行API的功能测试,对与APP的调用量无限制,但获取大 ...

  7. 小白学数据分析----->ARPPU的误区

    新年到来,该应该持续坚持写下去,还是有很多人要来学习和进步的. 今天提到了一个概念:ARPPU. 这个概念等同于之前大家认识的ARPU(其实这句话我是很不愿意说的),ARPPU是总收入除以总付费用户数 ...

  8. GTD时间管理(2)---管理收集箱

    通过上面一篇文章,相信大家对GTD收集有了原理大致的了解,如果大家对收集不是很了解,可以去看一下. 当我们收集到很多想法和事情之后,在晚会的时候必须要清空收集箱,否则收集箱会堆积如山,最终收集箱成了垃 ...

  9. Hadoop学习篇1 快速入门

    Hadoop是Apache Lucene创始人Doug Cutting创建的,Hadoop起源于Apache Nutch,一个开源的网络搜索引擎.最先引起注意是2003年google的一篇论文,该论文 ...

  10. Go 若干技巧

    此文来自 http://denvergophers.com/2013-09/tips-and-tricks.slide ###本文主要涉及到: 1. formatting 技巧 2. 异常处理技巧 3 ...