java---Swing界面开发总结

一、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

时间: 2024-10-02 09:31:47

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

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

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

Java Swing界面编程(24)---事件处理:键盘事件及监听处理

在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可. package com.beyole.util; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax

Java Swing界面编程(25)---事件处理:鼠标事件及监听处理

如果想对一个鼠标的操作进行监听,如果鼠标按下.松开等,则可以使用MouseListener接口. package com.beyole.util; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import

Java Swing界面编程(1)

写多了jsp,对于页面式的系统已经写烦了,本人也開始着手于java swing的学习,作为菜鸟,仅想用博客记录下我的swing学习的历程.话不多说,首先開始我的第一个窗体化程序. 下面给出源码: package com.beyole.util; import java.awt.Color; import javax.swing.JFrame; public class test1 { public static void main(String[] args) { JFrame frame=ne

Java Swing界面编程(23)---事件处理:编写用户验证登录用例

LoginCheck: package com.beyole.util; class LoginCheck {//编写登录验证类 private String userName;//用户名 private String password;//密码 public LoginCheck(String userName,String password)//复写构造方法 { this.userName=userName;//为用户名赋值 this.password=password;//为密码赋值 }

Java Swing界面编程(21)---事件处理:窗体事件

Splay树的插入操作,只需要处理好插入节点的孩子节点就可以了,最重要的是不要破坏了BST的基本规则. 因为高度并不是Splay树的首要因素,所以插入的时候也是使用splay操作,然后在根节点插入. 参考:http://www.geeksforgeeks.org/splay-tree-set-2-insert-delete/ 对比一下使用插入创建的树和手工创建数的区别,先序遍历的结果: #pragma once #include<stdio.h> #include <stdlib.h&g

Java Swing界面编程(28)---复选框:JCheckBox

程序可以通过JRadioButton实现单选按钮的功能,那么要实现复选框的功能,则必须使用JCheckBox完成. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; import

Java Swing界面编程(22)---事件处理:动作事件及监听处理

要想让一个按钮变得有意义,就必须使用事件处理.在swing的事件处理中,可以使用ActionListener接口处理按钮的动作事件. package com.beyole.util; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter

Java Swing界面编程(29)---JCheckBox事件处理

JCheckBox和JRadioButton的事件处理监听接口是一样的,都是使用ItemListener接口. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowAdapter; import j

Java Swing界面编程(30)---列表框:JList

列表框可以同时将多个选项信息以列表的方式展现给用户,使用JList可以构建一个列表框. package com.beyole.util; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; import javax.swing.BorderFact