基础知识
1.介绍Java的图形界面
1.awt (包名) java.awt
2.swing javax.swing
为了不频繁的输入java.awt和javax.swing,可以实例化完对象后按shift+ctrl+o
某些人也会用import java.awt.*;和import java.swing.* 但这样机器会在这两个包中逐个的寻找用到的方法,大大加重了其负担。
2.常用的组件
容器组件
JFrame( 默认的布局是边框布局)窗体类 顶级容器
JPanel(默认的布局是流式布局) 面板类 最灵活的容器
JMenuBar 菜单栏
JMenu 菜单项
元素组件
JLabel 标签类
JButton 按钮类
JTextField 输入框类
JPasswordField 密码输入框类
JComboBox 下拉框类
JCheckBox 复选框类
JMenuItem 菜单
javax.swing包下的类。
3.常用的布局
BorderLayout 边框布局
FlowLayout 流式布局
GridLayout 网格布局
所有以Layout结尾的类都是布局类。
java.awt,javax.swing都有
4.界面实现
实现界面的步骤:
1.定义类,在类中定义主函数和初始化界面的方法.
2.在初始化界面的方法中,实例化一个JFrame窗体类的对象.
3.设置窗体对象的属性值
4.实例化布局对象并且设置窗体容器的布局方式.
5.实例化对象容器或者元素组件的对象,让后将对象添加到窗体上.
6.在主函数中实例化类的对象,然后调用初始化界面的方法
5.了解下不同布局的特性及用法
BorderLayout(边框布局)
在下面的QQ登录界面和计算器界面中都有实例
FlowLayout(流式布局)(默认对齐方式为居中)举例
GridLayout(网格布局)(每个网格大小一致)举例
6.根据组件的排列划分不同的区域
先设定一个总的布局,布局之中再进行划分和布局
7.容器+布局实现界面
练习题(QQ登录界面,计算器界面)
我的代码:
QQ登录界面:
重点:
1.界面布局:边框布局和流式布局。
2.边框布局的使用方法
package swing界面;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
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.JTextField;
//定义登录界面类
public class enter {
/**
* 程序的主入口函数
*/
public static void main(String[] args) {
// 实例化一个enter类的对象
enter a=new enter();
//调用初始化界面的方法
a.initUI();
}
//定义一个初始化界面的方法
public void initUI(){
//实例化一个JFrame类的对象
JFrame j=new JFrame();
//设置对象的属性值
j.setSize(380,290);//设置对象的大小
j.setTitle("QQ登录");//设置对象的标题
//j.setLocation(180,180);//设置对象的位置
j.setLocationRelativeTo(null);
j.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
j.setResizable(false);//设置禁止改变窗体的大小
//实例化一个背景图标对象
ImageIcon backgroundImage=new ImageIcon("pictures/2.jpg");
// 实例化一个标签对象用来显示背景图标
JLabel jlaBackground = new JLabel(backgroundImage);
// 设置JLabel组件的显示位置和大小
jlaBackground.setBounds(0, 0, backgroundImage.getIconWidth(),
backgroundImage.getIconHeight());
//将jlaBackground添加到JLayeredPane的底层
j.getLayeredPane().add(jlaBackground, new Integer(Integer.MIN_VALUE));
//获取ContentPane对象
JPanel contentPane = (JPanel)j.getContentPane();
//设置ContentPane对象为透明
contentPane.setOpaque(false);
/*
* JFrame默认的布局是边框布局
*/
BorderLayout f = new BorderLayout();
//设置窗体的布局方式为边框布局
j.setLayout(f);
//创建北边的面板对象
JPanel northPane=new JPanel();
//设置面板为透明
northPane.setOpaque(false);
//设置面板的大小
northPane.setPreferredSize(new Dimension(0,110));
//将northPane添加到窗体的北面
j.add(northPane,BorderLayout.NORTH);
//设置一个西边面板
JPanel westPane=westPane();
//设置面板为透明
westPane.setOpaque(false);
//将西边面板添加到窗体
j.add(westPane,BorderLayout.WEST);
//创建一个中间的面板对象
JPanel centerPane=centerPane();
//设置面板为透明
centerPane.setOpaque(false);
//将中间面板添加到窗体
j.add(centerPane,BorderLayout.CENTER);
//设置一个南边面板
JPanel southPane=southPane();
//将南边面板添加到窗体
j.add(southPane,BorderLayout.SOUTH);
j.setVisible(true);//设置窗体为可见
}
/**
* 创建西边面板
*/
public JPanel westPane(){
//实例化一个JPanel对象
JPanel panel=new JPanel();
panel.setPreferredSize(new Dimension(100,0));
//实例化一个流式布局对象,然后指定对齐方式
FlowLayout fl=new FlowLayout(FlowLayout.RIGHT);
//设置panel的布局方式为流式布局
panel.setLayout(fl);
//实例化一个ImageIcon图标对象
ImageIcon pic=new ImageIcon("pictures/1.jpg");
//实例化一个JLable(标签)的对象
JLabel jlaImage=new JLabel(pic);
//将图标添加到面板上
panel.add(jlaImage);
//返回面板对象
return panel;
}
/**
* 创建一个中间面板
*/
public JPanel centerPane(){
JPanel panel=new JPanel();
//实例化一个流式布局对象,然后指定对齐方式
FlowLayout fl=new FlowLayout(FlowLayout.LEFT);
panel.setLayout(fl);
//实例化一个下拉框的对象
JComboBox jco=new JComboBox();
jco.addItem("810556163");//添加选择内容
jco.setEditable(true);
jco.setPreferredSize(new Dimension(185,25));
//将组件添加到panel上
panel.add(jco);
//实例化一个标签对象
JLabel d=new JLabel("注册账号");
panel.add(d);
//实例化一个文本输入框的对象
JTextField n=new JTextField();
n.setPreferredSize(new Dimension(185,25));
panel.add(n);
//实例化一个JLabel对象
JLabel s=new JLabel("找回密码");
panel.add(s);
//设置一个复选框
JCheckBox b=new JCheckBox("记住密码");
b.setOpaque(false);
panel.add(b);
//设置一个复选框
JCheckBox c=new JCheckBox("自动登录");
c.setOpaque(false);
panel.add(c);
return panel;
}
/**
* 创建南边面板的方法
*/
public JPanel southPane(){
JPanel panel=new JPanel();
//JPanel默认的是流式布局(居中对齐)
//实例化一个JButton对象
JButton t=new JButton("登 录");
t.setPreferredSize(new Dimension(155,35));
panel.add(t);
return panel;
}
}
计算器界面:
重点:
1.布局方式:首先是一个总的边框布局,实例化一个北边面板,中间面板,东边面板。
在中间面板中使用网格布局,但由于东边面板中的等号按钮比其他按钮大,
所以在东边面板中使用边框布局,再设置一个中间面板和南边面板,这两
个面板中均使用网格布局。
2.边框布局和网格布局的使用方法。
package swing界面;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class calculator {
/**
* @param args
*/
public static void main(String[] args) {
// 实例化一个Login类的对象
calculator l = new calculator();
// 调用初始化界面的方法
l.initUI();
}
/**
* 定义一个初始化界面的方法
*/
public void initUI() {
// 实例化一个JFrame类的对象
JFrame jf = new JFrame();
// 设置对象的属性值
jf.setSize(225, 420);// 设置对象的大小
jf.setTitle("计算器");// 设置对象的标题
//jf.setLocation(100, 100);// 设置对象显示的位置
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(3);// 设置窗体关闭时退出程序
jf.setResizable(false);// 设置禁止改变窗体的大
// JFrame默认的布局是边框布局
BorderLayout bl = new BorderLayout();
// 设置窗体的布局方式为边框布局
jf.setLayout(bl);
// 创建北边的面板对象
JPanel northPane = northPane();
// 将northPane添加到窗体的北边
jf.add(northPane, BorderLayout.NORTH);
// 创建一个东边的面板对象
JPanel eastPane = eastPane();
//将eastPane添加到窗体的东边
jf.add(eastPane, BorderLayout.EAST);
// 创建一个中间的面板对象
JPanel centerPane = centerPane();
// 将westPane添加到窗体的西边
jf.add(centerPane, BorderLayout.CENTER);
// 创建南边面板对象
//JPanel southPane = southPane();
// 将southPane面板添加到窗体的南边
//jf.add(southPane, BorderLayout.SOUTH);
jf.setVisible(true);// 设置窗体为可见
}
/**
* 创建北边面板的方法
*
* @return 返回北边面板对象
*/
public JPanel northPane() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(0, 160));
// 实例化一个JButton对象
JButton jbuLogin1 = new JButton("查看");
jbuLogin1.setPreferredSize(new Dimension(60, 25));
panel.add(jbuLogin1);
// 实例化一个JButton对象
JButton jbuLogin2 = new JButton("编辑");
jbuLogin2.setPreferredSize(new Dimension(60, 25));
panel.add(jbuLogin2);
// 实例化一个JButton对象
JButton jbuLogin3 = new JButton("帮助");
jbuLogin3.setPreferredSize(new Dimension(60,25));
panel.add(jbuLogin3);
//实例化一个文本框
JTextField jte = new JTextField();
jte.setPreferredSize(new Dimension(190, 120));// 设置组件大小
jte.setEditable(true);//设置为可编辑
panel.add(jte);
// 返回面板对象
return panel;
}
/**
* 创建中间面板的方法
*
* @return 返回中间面板对象
*/
public JPanel centerPane() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
// 实例化一个网格布局对象, 设置panel的布局方式为网格布局
panel.setLayout(new GridLayout(6,4));
panel.add(new Button("MC"));
panel.add(new Button("MR"));
panel.add(new Button("MS"));
panel.add(new Button("M+"));
panel.add(new Button("←"));
panel.add(new Button("CE"));
panel.add(new Button("C"));
panel.add(new Button("±"));
panel.add(new Button("7"));
panel.add(new Button("8"));
panel.add(new Button("9"));
panel.add(new Button("/"));
panel.add(new Button("4"));
panel.add(new Button("5"));
panel.add(new Button("6"));
panel.add(new Button("*"));
panel.add(new Button("1"));
panel.add(new Button("2"));
panel.add(new Button("3"));
panel.add(new Button("-"));
panel.add(new Button("0"));
panel.add(new Button("00"));
panel.add(new Button("."));
panel.add(new Button("+"));
// 返回面板对象
return panel;
}
/**
* 创建东边面板的方法
* @return返回东边面板对象
*/
public JPanel eastPane() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
// JFrame默认的布局是边框布局
BorderLayout bl = new BorderLayout();
// 设置窗体的布局方式为边框布局
panel.setLayout(bl);
// 创建一个中间的面板对象
JPanel centerPane = centerPanes();
// 将westPane添加到窗体的中间
panel.add(centerPane, BorderLayout.CENTER);
// 创建南边面板对象
JPanel southPane = southPanes();
// 将southPane面板添加到窗体的南边
panel.add(southPane, BorderLayout.SOUTH);
panel.setVisible(true);// 设置窗体为可见
// 返回面板对象
return panel;
}
/**
* 东边面板中中间面板的方法
*/
public JPanel centerPanes() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
// 实例化一个网格布局对象, 设置panel的布局方式为网格布局
panel.setLayout(new GridLayout(4,1));
panel.add(new Button("M+"));
panel.add(new Button("√"));
panel.add(new Button("%"));
panel.add(new Button("1/x"));
return panel;
}
/**
* 东边面板中的南边面板的方法
* @return
*/
public JPanel southPanes() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(40,80));
// 实例化一个网格布局对象, 设置panel的布局方式为网格布局
panel.setLayout(new GridLayout(1,1));
panel.add(new Button("="));
return panel;
}
}
- 大小: 132.1 KB
- 大小: 17.4 KB
分享到:
相关推荐
swing界面设计之Layou 内用收集的关于面板、窗体设置大小,自动调整大小等布局知识点和经验
Java swing编写的计算器界面.zip
Java 图形界面开发简介 .............. ................................ ................................ ..... 5 1. Swing1. Swing1. Swing 1. Swing1. Swing1. Swing1. Swing简介 ..............................
一个顶层容器(即主窗口) 顶层容器包含若干个中间容器 每个中间容器包含若干个基本组件 按照合理的布局方式将它们组织在一起 基本组件可响应发生在其上的事件
Java swing图形界面开发与案例详解_代码
《Java Swing图形界面开发与案例详解》全书共20章,其中第1~2章主要介绍有关Swing的基础知识,包括Swing的基本概述、如何使用IDE开发Swing程序;第3~15章结合众多实例和问题介绍最常用、最有用的组件及其应用方法...
原创,为完整java工程包。...简化swing复杂界面布局不方便,容器定位的问题。 具体思想是将tabel td等标签相关元素和属性映射成GridBagConstraints的属性值,将布局独立到配置文件,从而简化代码中关于布局的复杂度
使用java语言开发的计算器程序,Swing界面布局,实现了基本的数学常用运算!
此资源详细介绍了javaswing各种布局 监听事件 最后还有一个综合的例子程序 感兴趣的朋友 可以学习一下 代码示例简单易懂 也很全面
本记事本是基于javax swings 实现的,能实现简单的功能,全部都有注释,易懂!
本文通过代码示例的方式介绍了Swing的GridBagLayout布局样式的应用,不拘泥于JDK文档教条方式的陈述,图形效果图与文字相结合,讲解直观而浅显易懂,另外,示例代码中还包含了BorderLayout、FlowLayout等布局的应用...
第九章 Swing图形用户界面9.1 概述9.2 容器组件9.3 基本组件9.4 布局管理器9.5 事件处理模型9.6 本章小结9.1 概述图形用户界面(GUI
用java swing开发的记事本程序简单的实现了一些功能
自己做的点歌系统 ,希望大家借鉴,用纯Swing组件布局的界面,不是太美观
NULL 博文链接:https://yuwuxia.iteye.com/blog/1848371
通过应用awt等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过建立JDBC-ODBC桥接器连接到mysql数据库后,向数据库发送SQL...
•理解Java的图形化编程方式 •掌握Swing的各种编程方法 •掌握Swing的常用组件 •掌握事件处理及监听者模式 •使用Swing设计工程界面
1.首先用到了swing界面布局,首先创建jFrame边框,里面的container可以添加各种面板panel,我们采用的布局是Grid布局2行1列的形式 2.按钮点击事件通过implements ActionListener实现,怎么判断哪个按钮呢,通过event....
本资源包含Swing方面的基础知识: 01分解颜色 02画板 03帧 04画布 05密码验证界面 06对话框 07滚动条 08边框 09单选框图片浏览器 10卡片布局管理器 11边界布局管理器 12进程条 13列表框和组合框 14选项卡 15菜单 16...
学员通过对该项目整体框架搭建和对图片列表加载、图片展示、图片切换、图片删除功能的设计与实现,训练了学员对GUI容器、布局、事件处理、JTree控件、 菜单、对话框等知识点的掌握。 本项目主要包括项目开发环境...