JAVA学习日记每天进步一点点之Swing组件
Swing的一些概念
GUI:图形用户界面
AWT:抽象窗口工具箱 的加强版为 Swing
Swing:轻量级和可插入外观特点
Swing组件最重要的父类为Container类,分为java.awt.Window和java.awt.Frame子类
Swing常见组件有:JButton、JFrame等,我们在接下来的创建窗体的操作中可以学到。
JFrame窗体
**讲在前头:Swing组件的窗体通常与组件和容器有关!**JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些组件的容器,同时可以为这些组件设置事件。
下面我们通过构建一个窗体的过程来学习这些组件:
JFrame jf=new JFrame(Title); Container container=jf.getContentPane();
首先创建JFrame的对象,接着调用JFrame的getContentPane()方法得到Container对象,将窗体转换为容器。这样我们就可以在容器中添加我们的组件或者设置布局管理器。可以理解容器是一个可以添加各种东西的空白的框,我们需要添加按钮和文字图片完成我们窗体的设计。
利用容器的add()方法就可以添加组件
JLabel jl=new JLabel("这是被张轲然承包的框框"); jl.setHorizontalAlignment(SwingConstants.CENTER); container.add(jl);
设想一个最基本的窗口,它具有哪些基本的元素,从刚开始窗口的出现:窗的大小,窗的背景颜色,窗的标题,这些显示的部分都可以利用Swing组件实现,作为开发人员的话一定要万事巨细,想到每个部分,想到每个部分用什么实现。这时候我们就可以明白窗体的设计为什么和组件和容器相关:组件实现窗体的各种功能,相当于零件,容器将这些组件实现的功能一个一个加进框内,相当于车架。
JDialog窗体
JDialog窗体为swing组件的对话框,它的功能是从一个窗体弹出到另一个窗体。
public JDialog(Frame f,String title,Boolean model):创建一个指定标题、窗体和模式的对话框。通过实例来看一下:
JButton bl=new JButton("安全弹出"); bl.setBounds(10, 10, 100, 21); bl.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub new Duihua_Window(Tanchu_Duihua.this).setVisible(true); } }); container.add(bl);
首先在JFrame的容器里面定义一个按钮,然后为其添加鼠标监听事件,即:bl.addActionListener(new ActionListener()函数,接着使用new Duihua_Window(Tanchu_Duihua.this).setVisible(true);使得对话框窗体可见,这样就可以实现点击按钮弹出对话框的功能了。
class Duihua_Window extends JDialog { public Duihua_Window(Tanchu_Duihua frame) { super(frame,"哈哈哈",true); Container container=getContentPane(); JLabel jl=new JLabel("还是张轲然的框"); container.add(jl); setBounds(120,120,100,100); }
利用super关键字调用JDialog构造方法,构造方法里面,设置了自定义的JFrame窗体,对话框的标题和窗体类型。
标签和图标
标签的使用
JLabel类。只可以显示一行只读文本、一个图像、或带图像的文本,不能产生事件。
构造方法:
public JLabel(Icon icon,int aligment);创建一个带图标的JLabel对象,并设置对齐方式。
图标的使用
Swing中的图标可以放置在按钮、标签等组件上,用于描述组件的用途。
Swing通过Icon来接口来创建图标,则必须实现Icon的接口的三个方法:
得到图标的长宽,还有打印图标的方法。
public class DrawIcon implements Icon{ private int width; private int height; public int getIconWidth() { return this.width; } public int getIconHeight() { return this.height; } public DrawIcon(int width,int height) { this.height=height; this.width=width; } public void paintIcon(Component arg0,Graphics arg1,int x,int y) { arg1.fillOval(x, y, width, height); }
图片图标
通过javax.swing.ImageIcon()类根据现有图片创建图标,ImageIcon实现了Icon接口。
java.net.URL url=MyImageIcon.class .getResource("1.jpg"); Icon icon=new ImageIcon(url);//通过上面的函数知道图片的地址,然后将地址为url的图片用作图标,前提是图片要和MyImageIcon类在一个文件夹。 jl.setIcon(icon);
总结
使用Swing组件的时候,重要的是将每个组件需要的设置的部分都设置好,如:对于图标,你需要创建一个新的类实现Icon图标接口,接着在类中我们要得到图标的长宽,位置,对齐方式,还有Icon必须要的方法。然后需要将这些完备的组件添加到容器中去中去,然后利用最基本的JFrame设置窗体的大小、显示还有关闭的方式,visible使得窗体可见,最后才可以显示。
布局管理
绝对布局
硬性指定组件在容器中的位置和大小,可以用绝对坐标的方法指定组件的位置。
步骤:
- Container.setLayout(null);//取消布局管理器
- Container.setBounds(x,y.width,height);//设置组件的大小和绝对位置
流布局管理器FlowLayout
在容器中的布局:像“流”一样从左往右摆放组件,知道占据这一行的所有空间,再移动大下一行。
构造方法:
public FlowLayout(int alignment,int horizGap,int vertGap)
alignment参数设置为0,左对齐;为2,右对齐。
int horizGap,int vertGap:设置垂直水平间隔
- JAVA学习日记每天进步一点点之Swing 布局管理及面板
- JAVA学习日记每天进步一点点之java数据结构
- JAVA学习日记每天进步一点点之集合类
- JAVA学习日记每天进步一点点之I/O
- JAVA学习日记每天进步一点点之登陆界面操作、判断账户名和添加下拉框内容代码
- JAVA 学习日志 测试抽象类的程序,每天进步/退步一点点,变化很大哦,努力!
- 每天进步一点点之Android学习札记1
- java编程之路每天进步一点点之2014年6月24日
- [每天进步一点点] - Java/JSP连接MySQL数据库篇[2012.12.17]
- Java每天学习一点点 09.10.14
- JAVA学习笔记(四十九)- Swing相关组件
- 每天学习一点点,每天进步一点点、、、、、
- JAVA学习日记初涉SWING
- 每天进步一点点--java连接mysql
- Java swing 一些组件的学习和使用
- 人工智能时代已经来临,今天开始学习Python,每天进步一点点 一
- Java每天学习一点点 09.10.13
- [Java] Swing系列-组件对齐方式的学习
- Java每天学习一点点 09.10.13
- 不断学习,每天进步一点点【图像,计算机视觉,机器学习,学习积累】