Swing界面开发的总结
一、Java的图形界面有:
1.awt :java.awt,它是jdk1.4之前推出的图形界面类
2.swing :javax.swing,它是jdk1.4的时候推出的图形界面类
N.B:两者的不同之处在于:1.跨平台性(swing由于awt)
2.awt基于C、C++语言
swing基于Java语言
二、常用的组件有:
A.容器组件
1.Frame 窗体类 顶级的容器(JFrame不能往JFrame里加)
它有一个默认的布局为边框布局
2.JPanel 面板类 最灵活的容器(JPanel可以往JPanel里加,也可以往JFrame里加)
它有一个默认的布局为流式布局
B.元素组件
JLabel 标签类
JTextField 文本输入框类
JPasswordField 密码输入框类
JCheckBox 复选框类
JButton 按钮类
JComboBox 下拉框类
N.B:容器和元素组件都是javax.swing包下的类。
javax.swing.JFrame
三、常用的布局
BorderLayout 边框布局
FlowLayout 流式布局
GridLayout 网格布局
N.B:1.布局类只能用在容器中。
2.以上三种布局都是位于java.awt包下的类
java.awt.FlowLayout
/****************************练习************************************/
1. 制作.QQ界面
package cn.zhm.study0718;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
public class QQcenter {
/**
* 程序的入口主函数
*/
public static void main(String[] args) {
// 实例化QQcenter类的对象
QQcenter qq=new QQcenter();
//调用初始化界面的方法
qq.initUI();
}
/**
* 初始化界面的方法
*/
public void initUI(){
JFrame jf=new JFrame();//实例化一个窗体对象
jf.setTitle("QQ登录界面");//设置窗体的标题属性
jf.setSize(380,310);//设置窗体的大小属性
jf.setLocationRelativeTo(null);//设置窗体的显现位置为居中
jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
jf.setResizable(false);//禁止调整窗体的大小
addBackgroundImage(jf);
/*****************窗体的北边************************/
//调用创建北边面板的方法,返回创建好的面板对象
JPanel northPanel=createNorthPanel();
//将northPanel添加到窗体的北边
jf.add(northPanel,BorderLayout.NORTH);
/*****************窗体的西边************************/
//调用创建西边面板的方法,返回创建好的面板对象
JPanel westPanel=createWestPanel();
//将westPanel添加到窗体的西边
jf.add(westPanel,BorderLayout.WEST);
/***************窗体的南边****************************/
//调用创建南边面板的方法,返回创建好的面板对象
JPanel southPanel=createSouthPanel();
//将southPanel添加到窗体的南边
jf.add(southPanel,BorderLayout.SOUTH);
/******************窗体的中部***********************/
//调用创建南边面板的方法,返回创建好的面板对象
JPanel centerPanel=createCenterPanel();
//将centerPanel添加到窗体的中部
jf.add(centerPanel,BorderLayout.CENTER);
//将窗体北边、西边、南边、中间的面板设置为透明
northPanel.setOpaque(false);
westPanel.setOpaque(false);
//southPanel.setOpaque(false);
centerPanel.setOpaque(false);
jf.setVisible(true);//设置窗体可见
}
/**
* 创建北边面板的方法
*/
public JPanel createNorthPanel(){
//实例化一个JPanel类的对象
JPanel northPanel=new JPanel();
//设置北边面板容器的大小
northPanel.setPreferredSize(new Dimension(0,125));
//设置面板的背景色
northPanel.setBackground(Color.BLUE);
//返回创建好的面板对象
return northPanel;
}
/**
* 创建西边面板的方法
*/
public JPanel createWestPanel(){
//实例化一个JPanel类的对象
JPanel westPanel=new JPanel();
//设置西边面板容器的大小
westPanel.setPreferredSize(new Dimension(105,0));
//实例化一个ImageIcon类的图标对象
ImageIcon imag=new ImageIcon("pictures/1.png");
//实例化一个标签对象
JLabel jlaImage=new JLabel(imag);
//将标签对象添加到面板上
westPanel.add(jlaImage);
//设置窗体的布局方式为流式布局
westPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
//返回创建好的面板对象
return westPanel;
}
/**
* 创建南边面板的方法
*/
public JPanel createSouthPanel(){
//实例化一个JPanel类的对象
JPanel southPanel=new JPanel();
//设置南边面板容器的大小
southPanel.setPreferredSize(new Dimension(0,45));
//设置面板的颜色
southPanel.setBackground(Color.WHITE);
//实例化一个按钮组件
JButton jbu=new JButton("登 录");
//设置按钮对象的颜色
jbu.setForeground(Color.WHITE);
//设置按钮的背景颜色
jbu.setBackground(Color.BLACK);
//设置按钮的大小
jbu.setPreferredSize(new Dimension(150,35));
//将按钮添加到面板上见
southPanel.add(jbu);
//返回创建好的面板对象
return southPanel;
}
/**
* 创建中间面板的方法
*/
public JPanel createCenterPanel(){
//实例化一个JPanel类的对象
JPanel centerPanel=new JPanel();
//设置面板的布局方式为流式布局靠左对齐
centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
//实例化一个下拉框类的对象
JComboBox jco=new JComboBox();
//设置下拉框可编辑
jco.setEditable(true);
//给下拉框添加数据
jco.addItem("1136207581");
//设置下拉框的大小属性
jco.setPreferredSize(new Dimension(180,25));
//将下拉框添加到面板上
centerPanel.add(jco);
//实例化一个标签对象
JLabel jla1=new JLabel("注册账号");
//设置标签对象的颜色
jla1.setForeground(new Color(240,200,140));
//将标签添加到面板上
centerPanel.add(jla1);
//实例化一个密码框类的对象
JPasswordField jpa=new JPasswordField();
//设置密码框的大小属性
jpa.setPreferredSize(new Dimension(180,25));
//将密码框添加到面板上
centerPanel.add(jpa);
//实例化一个标签对象
JLabel jla2=new JLabel("找回密码");
//设置标签对象的颜色
jla2.setForeground(new Color(240,200,140));
//将标签添加到面板上
centerPanel.add(jla2);
//实例化复选框对象
JCheckBox jch1=new JCheckBox("记住密码");
//设置复选框对象的颜色
jch1.setForeground(new Color(240,200,140));
JCheckBox jch2=new JCheckBox("自动登录");
//设置复选框对象的颜色
jch2.setForeground(new Color(240,200,140));
//设置背景透明
jch1.setOpaque(false);
jch2.setOpaque(false);
//将复选框对象添加到面板上
centerPanel.add(jch1);
centerPanel.add(jch2);
//返回创建好的面板对象
return centerPanel;
}
/**
* 给窗体添加背景图标
*/
public void addBackgroundImage(JFrame jf){
//实例化一个ImageIcon的图标对象
ImageIcon image=new ImageIcon("pictures/4.png");
//实例化一个标签类的对象
JLabel background=new JLabel(image);
//设置标签显示的位置和标签的大小
background.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
//将标签添加到窗体的第二层面板上
jf.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));
//获取窗体的第一层面板对象
JPanel contentPanel=(JPanel)jf.getContentPane();
//设置第一层面板为透明
contentPanel.setOpaque(false);
}
}
运行结果:
2. 制作计算器
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Counter2 {
/**
* 程序的入口主函数
*/
public static void main(String[] args) {
// 实例化Counter2类的对象
Counter2 cou=new Counter2();
//调用初始化界面的方法
cou.initUI();
}
/**
* 定义一个初始化界面的方法
*/
public void initUI(){
//实例化一个JFrame类的对象
JFrame jf=new JFrame();
jf.setTitle("计算器");//设置窗体的标题属性
jf.setSize(230,320);//设置窗体的大小属性
jf.setLocation(200,200);//设置窗体显现的位置属性
jf.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
jf.setResizable(false);//设置禁止调整窗体大小
/************窗体北边的面板容器*****************/
//调用创建北边面板的方法,返回创建好的北边面板
JPanel northPanel=createNorthPanel();
//将northPanel添加到窗体的北边
jf.add(northPanel,BorderLayout.NORTH);
/**************窗体中部的面板容器***********************/
//调用创建中部面板的方法,返回创建好的中部面板
JPanel centerPanel=createCenterPanel();
//将centerPanel添加到窗体的中部
jf.add(centerPanel,BorderLayout.CENTER);
/******************窗体南边的面板容器***********************/
//调用创建南边面板的方法,返回创建好的南部面板
JPanel southPanel=createSouthPanel();
//将southPanel添加到窗体的南边
jf.add(southPanel,BorderLayout.SOUTH);
/*****************窗体西边的面板容器**********************/
//调用创建西边面板的方法,返回创建好的南部面板
JPanel westPanel=createWestPanel();
//将westPanel添加到窗体的西边
jf.add(westPanel,BorderLayout.WEST);
/******************窗体东边的面板容器***********************/
//调用创建南边面板的方法,返回创建好的南部面板
JPanel eastPanel=createEastPanel();
//将eastPanel添加到窗体的东边
jf.add(eastPanel,BorderLayout.EAST);
jf.setVisible(true);//设置窗体为可见
}
/**
* 创建北边面板容器的方法
*/
public JPanel createNorthPanel(){
//实例化一个JPanel类的对象
JPanel northPanel=new JPanel();
//设置北边面板的大小属性
northPanel.setPreferredSize(new Dimension(0,90));
//实例化一个JTextField类的对象
JTextField jte=new JTextField();
//设置文本框的大小属性
jte.setPreferredSize(new Dimension(210,80));
//将文本框添加到面板上
northPanel.add(jte);
//返回面板的方法
return northPanel;
}
/**
* 创建西边面板容器的方法
*/
public JPanel createWestPanel(){
//实例化一个面板
JPanel westPanel=new JPanel();
//设置面板的大小属性
westPanel.setPreferredSize(new Dimension(5,200));
//返回面板的方法
return westPanel;
}
/**
* 创建西边面板容器的方法
*/
public JPanel createEastPanel(){
//实例化一个面板
JPanel eastPanel=new JPanel();
//设置面板的大小属性
eastPanel.setPreferredSize(new Dimension(5,190));
//返回面板的方法
return eastPanel;
}
/**
* 创建中间面板容器的方法
*/
public JPanel createCenterPanel(){
//实例化一个面板对象
JPanel centerPanel=new JPanel();
//设置面板的布局方式为网格布局
centerPanel.setLayout(new GridLayout(5,4,5,5));
//定义按钮类的对象
JButton jbu1=new JButton("C");
JButton jbu2=new JButton("MC");
JButton jbu3=new JButton("MR");
JButton jbu4=new JButton("M+");
JButton jbu5=new JButton("←");
JButton jbu6=new JButton("±");
JButton jbu7=new JButton("%");
JButton jbu8=new JButton("÷");
JButton jbu9=new JButton("7");
JButton jbu10=new JButton("8");
JButton jbu11=new JButton("9");
JButton jbu12=new JButton("×");
JButton jbu13=new JButton("4");
JButton jbu14=new JButton("5");
JButton jbu15=new JButton("6");
JButton jbu16=new JButton("-");
JButton jbu17=new JButton("1");
JButton jbu18=new JButton("2");
JButton jbu19=new JButton("3");
JButton jbu20=new JButton("+");
//将按钮添加到面板上
centerPanel.add(jbu1);
centerPanel.add(jbu2);
centerPanel.add(jbu3);
centerPanel.add(jbu4);
centerPanel.add(jbu5);
centerPanel.add(jbu6);
centerPanel.add(jbu7);
centerPanel.add(jbu8);
centerPanel.add(jbu9);
centerPanel.add(jbu10);
centerPanel.add(jbu11);
centerPanel.add(jbu12);
centerPanel.add(jbu13);
centerPanel.add(jbu14);
centerPanel.add(jbu15);
centerPanel.add(jbu16);
centerPanel.add(jbu17);
centerPanel.add(jbu18);
centerPanel.add(jbu19);
centerPanel.add(jbu20);
return centerPanel;
}
/*
* 创建南边面板容器的方法
*/
public JPanel createSouthPanel(){
//实例化一个JPanel类的对象
JPanel southPanel=new JPanel();
//设置面板的大小属性
southPanel.setPreferredSize(new Dimension(230,40));
//设置窗体的布局方式为流式布局
southPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
//实例化按钮类对象
JButton jbu21=new JButton("0");
JButton jbu22=new JButton(".");
JButton jbu23=new JButton("=");
//设置按钮类的大小
jbu21.setPreferredSize(new Dimension(103,30));
jbu22.setPreferredSize(new Dimension(50,30));
jbu23.setPreferredSize(new Dimension(50,30));
//将按钮添加到面板上
southPanel.add(jbu21);
southPanel.add(jbu22);
southPanel.add(jbu23);
//返回创建好的面板对象
return southPanel;
}
}
运行结果:
N.B:
需要注意的地方:1.边框布局的Center是不可以调整大小的!只有North、South、East、West可以调整大小!
2.设置颜色的时候可以参考画图板的颜色编辑参数。
3.放入网格布局中的按钮不可以设置大小。
4.可用ctrl+shift+o导入包。
5.我不熟悉的:
/**
* 给窗体添加背景图标
*/
public void addBackgroundImage(JFrame jf){
//实例化一个ImageIcon的图标对象
ImageIcon image=new ImageIcon("pictures/4.png");
//实例化一个标签类的对象
JLabel background=new JLabel(image);
//设置标签显示的位置和标签的大小
background.setBounds(0,0,image.getIconWidth(),image.getIconHeight());
//将标签添加到窗体的第二层面板上
jf.getLayeredPane().add(background,new Integer(Integer.MIN_VALUE));
//获取窗体的第一层面板对象
JPanel contentPanel=(JPanel)jf.getContentPane();
//设置第一层面板为透明
contentPanel.setOpaque(false);
}
相关推荐
NULL 博文链接:https://hugo-vern.iteye.com/blog/1977064
本项目是基于Swing和JDBC开发的图形界面桌面应用,涵盖了J2SE的绝大部分基础知识,通过这个项目能运用和锻炼几乎大部分的J2SE知识和技能。 基础内容: 面向对象 字符串数字 日期 中级内容: 异常 ,集合,JDBC,...
(一) Spring 开发 Swing GUI 简介——依赖注入和富客户机 5 关于本教程 5 前提条件 6 Spring 和依赖注入概述 7 什么是 Spring 框架? 7 什么是依赖注入? 7 环境设置 7 选择编译环境 7 设置 Ant 8 通过 Ant 自动下载...
java课设之征名管理系统,用swing做的全部界面,内含完整程序源码以及详细注释,课程设计要求,软件需求 分析说明书,课程设计总结报告,活动图、软件原型、用例图的全部原图,已生成jar包和javadoc文档,软件需求...
swing 开发 Linux和window系统解决乱码参考文档,个人总结,不喜勿碰
随着计算机与软件的进步,人机交互...如编辑框,滚动条,弹出菜单等的做法,由此形成了一个开发swing风格界面的 集成界面模板工具。最后,文章结尾总结了提出和研究设计的这套方案在意义和不足,以及进一步的工作。
本文介绍了酒店客房管理系统的开发过程,详尽论述了需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程,总结了开发过程中的经验及本系统今后的改进方向。 关键词:SWING;MYSQL;信息管理;...
Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...
使用java swing技术开发的简易UI框架,整个框架模仿“酷我音乐盒”的皮肤,可以直接基于此搭建桌面项目,也可以拿源代码研究学习...
是因为运用了swing的一些美观技术,实现起来也非常容易,还总结了Swing的各种控件的用法,尤其是对表(table)树(tree)的实现更经典,运用了很多算法之类的,把重复的代码封装成为通用的,这样可以使开发人员加快...
本文介绍了酒店客房管理系统的开发过程,详尽论述了需求分析、系统分析、概要设计、详细设计、以及测试与调试的整个开发过程,总结了开发过程中的经验及本系统今后的改进方向。 关键词:SWING;MYSQL;信息管理;酒店...
Swing 和 SWT,AWT 技术都是在 Java 图形化界面设计中常用的开发包,在进行 Java GUI 编程时,大家或许经 常徘徊在 SWT,Swing,AWT 之间选择,哪一个更合适自己? 本文简单介绍了三者中各自的功能特点,以及之间的区别...
基于java的雷电游戏GUL_swing软件设计源码+WORD毕业论文文档. 基于java的雷电游戏基本功能包括:敌方飞机随机飞行、我方飞机手动控制飞行,射击比拼,游戏闯关等。本系统结构如下: (1)雷电游戏状态调整功能: ...
项目背景 目前市面上现有的数据库工具,比较出名的有Navicat、Toad、PLSQL等等,这些工具功能都是比较强大的。...对于普通开发人员来说,这一款数据库浏览器能够满足最基本的需求,系统运行占用内存小、界面友好。
可以做到没有JavaScript,只通过ZUML(ZK User Interface Markup Language)这种标识语言即可做到界面创建和事件响应。 ZK的实现完全用java实现,开发过程中不会有任何的JavaScript代码,但是通过将zul文件(ZK的...
总结来说,【小程序名称】凭借其小巧便携、快捷高效的特性,不仅节省了用户的手机存储空间,更为用户提供了无缝衔接的便利服务,是现代生活中不可或缺的一部分,真正实现了“触手可及”的智能生活新体验。...
6.6 递增开发 6.7 上溯造型 6.7.1 何谓“上溯造型”? 6.8 final关键字 6.8.1 final数据 6.8.2 final方法 6.8.3 final类 6.8.4 final的注意事项 6.9 初始化和类装载 6.9.1 继承初始化 6.10 总结 6.11 练习 第7章 ...
15 二、 书写习惯养成 15 三、 注意程序简洁 15 总结 16 参考文献 17 附录:项目源代码 18 一、 数据库连接(DbConnection.java) 18 二、 学生信息数据库管理(Student_Dao.java) 18 三、 欢迎界面(Welcome.java...
1、实验项目名称:用户登录系统 2、实验要求: (1)了解自定义异常的用法; (2)熟悉异常处理机制及创建自定义异常。 3、使用:在了解Java异常机制的基础上自己编写的实验报告。
其界面主要采用了java.awt包,java.swing包等。程序实现了聊天室的基本功能,其中有: 1.启动服务器。 2.启动登陆界面。 3.进入客户端界面。 4.发送信息。 5.离开客户端界面。 6.关闭服务器