JAVA界面 Swing

Swing概述
Swing API 可扩展 GUI组件,以减轻开发者的生活创造基于JAVA前端/GUI应用。它是建立在AWT API之上,并作为 AWT API 的更换,因为它几乎每一个控制对应 AWT控制。

Swing 组件遵循MVC(模型-视图-控制器)架构,MVC让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。

MVC

假设我们要举办一场时装秀,如果只是一个人来完成,那么这个人就身兼数职:设计、修改时装,到T台展示时装。

那么如果我们使用MVC模式来模拟一下,就不会让一个人来做所有的事情。我们会让时装模特儿展示服装,他们扮演的角色就是视图。模特知道展示服装(数据)的适当方法,但是他们不知道如何设计和制作服装。我们让时装设计师充当控制器,时装设计师对于如何在 T 台上走秀没有概念,但他能设计和制作服装。时装模特和设计师都能独立地处理服装,但都有自己的专业领域。这就是MVC设计模式背后的概念:“把角色分开”

Swing特点

重量轻-Swing组件是独立的原生操作系统的API与Swing API控件呈现大多采用纯JAVA代码,而不是底层的操作系统调用。

丰富的控件-Swing提供了一套丰富的先进的控制系统,如树,JTabbedPane,滑块,颜色选择器,表格控件

高度可定制-Swing控件可以定制视觉外观是非常简单的方法,独立的内部表示。

可插拔的外观和感觉-基于Swing GUI应用程序外观和风格基于可用值,可以在运行时改变。

组件与容器
JComponent

Swing的整个可视组件库的基础构造块是JComponent,它是所有组件的父类,并且是一个抽象类,所以我们不能直接创建JComponent对象,但是作为类层次结构的基础。从API中我们看到它包含了上百个方法,Swing中的每个组件都可能使用这些方法。

组件都是矩形形状,组件本身有一个默认的坐标系,组件的左上角的坐标值是(0,0)。如果一个组件的宽是20,高是10,那么,该坐标系中,x坐标的最大值是20;y坐标的最大值是10。

组件默认的边框是一个黑边的矩形,我们可以通过方法

[java] view plain copy
public void setBorder(Border border)
设置组件的边框。该方法的参数是一个接口,必须向该参数传递一个实现接口Border类的实例。如果传递一个null,组件将取消边框。
组件的颜色:

public void setBackground(Color c):设置组件的背景色。
public void setForeground(Color c):设置组件的前景色。
public Color getBackground(Color c):获取组件的背景色。
public Color getForeground(Color c):获取组件的前景色。
public Color(int red,int green,ing blue):创建一个颜色对象,其中red、green、blue的取值在0到255之间。
组件的字体:

public void setFont(Font f):组件调用该方法设置组件上的字体。
public Font getFont(Font f):组件调用该方法获取组件上的字体。
上述方法中用到了java.awt包中的Font类,Font类的构造方法是:

[java] view plain copy
public Font(String name,int style,int size) // 创建字体对象。name是字体的名字,style决定字体的样式,取值是一个整数。
组件的大小与位置:

public void setSize(int width,int height):设置组件的大小。
public void setLocation(int x,int y):设置组件在容器中的位置,组件距容器的左、上边界 x、y 个像素。
public Dimension getSize():返回一个Dimension对象的引用,该对象实体中当前组件的宽度和高度。
public Point getLocation(int x,int y):返回一个Point对象的引用,该对象实体中含有组件的左上角在容器的坐标系中的x坐标和y坐标。
public void setBounds(int x,int y,int width,int height):设置组件在容器中的位置和组件的大小。
public Rectangle getBounds():返回一个Rectangle对象的引用,该对象实体中含有当前组件左上角在容器坐标系中的x坐标和y坐标,宽度和高度。
组件默认是不透明的,我们可以通过方法

[java] view plain copy
public void setOpaque(boolean isOpaque)
设置组件是否不透明。isOpaque取false时,组件被设置为透明;isOpaque取true时组件被设置为不透明。方法
[java] view plain copy
public boolean isOpaque()
当组件不透明时该方法返回true,否则返回false。
组件的激活与可见性:

public void setEnabled(boolean b):设置组件是否可被激活。
当参数b取值true时,组件可以被激活。
当参数b取值false 时,组件不可激活。
默认情况下,组件是可以被激活的。
public void setVisible(boolean b):设置组件在该容器中的可见性。
当b取值true时,组件在容器中可见。
当b取值false时,组件在容器中不可见。
除了Window型组件外,其它类型组件默认是可见的。
我们再来认识几个方法:

add( ):将组件添加到该容器中。
removeAll() :移掉容器中的全部组件。
remove(Component c) 移掉容器中参数指定的组件。
validate():每当容器添加新的组件或移掉组件时,调用该方法以保证容器中的组件能正确显示出来。
JFrame

JFrame类是一个顶层窗口,也是一个容器,允许将其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。它有许多其他好处,我们先看最简单的图片:

JFrame实际上不仅仅让您把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是 Swing 包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的Swing组件与实际运行这些组件的操作系统之间,JFrame起着桥梁的作用。JFrame在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性:最小化/最大化、改变大小、移动。

常用构造方法:

JFrame():可以创建一个无标题的窗口。
JFrame(String title):创建一个标题为title的窗口
常用方法:

getTitle()/setTitle():获取/设置窗口的标题。
getState/setState():获取/设置窗口的最小化、最大化等状态。
isVisible()/setVisible():获取/设置窗口的可视状态(即是否在屏幕上显示)。
getLocation/setLocation():获取/设置窗口在屏幕上应当出现的位置。
getSize()/setSize():获取/设置窗口的大小。
setBounds():获取/设置窗口出现在屏幕上时的初始位置与大小。
setResizable():设置窗口是否可调整大小,窗口默认是可调整大小的。
add():将组件添加到窗口中。
setDefaultCloseOperation() :设置单击窗体右上角的关闭图标后,程序会做出怎样的处理。
JDialog

对话框类。

JDialog类是Window的子类。对话框必须要依赖于某个窗口或组件,当它所依赖的窗口或组件消失,对话框也将消失;当它所依赖的窗口或组件可见时,对话框又会自动恢复。

我们通过建立JDialog的子类来建立一个对话框类。不可以把组件直接添加到对话框中,不能为对话框设置布局,可以使用getContentPane()方法得到内容面板。

对话框可分为无模式和有模式两种。

如果一个对话框是有模式的对话框,那么当这个对话框处于激活状态时,只让程序响应对话框内部的事件,程序不能再激活它所依赖的窗口或组件,而且它将堵塞当前线程的执行,直到该对话框消失不可见。

无模式对话框处于激活状态时,程序仍能激活它所依赖的窗口或组件,它也不堵塞线程的执行。

消息对话框:

消息对话框是有模式对话框。进行一个重要的操作动作之前,最好能弹出一个消息对话框以确定操作。

可以用javax.swing包中的JOptionPane类的静态方法:

public static void showMessageDialog (Component parentComponent,String message,String title, int messageType)
创建一个消息对话框。参数分别是对话框所依赖的组件、对话框上显示的消息,对话框的标题,对话框的外观。

确认对话框:

确认对话框是有模式对话框。可以用javax.swing包中的JOptionPane类的静态方法:

public static int showConfirmDialog (Component parentComponent,Object message,String title,int optionType)
创建一个确认对话框。

颜色对话框:

可以用javax.swing包中的JColorChooser类的静态方法:

[java] view plain copy
public static Color showDialog (Component component,String title,Color initialColor)
创建一个颜色对话框。参数component指定对话框所依赖的组件,title指定对话框的标题;initialColor指定对话框返回的初始颜色。

文件对话框:

文件对话框提供从文件系统中进行文件选择的界面。JFileChooser对象调用下列方法:

showDialog(Component parent,String s)
showOpenDialog(Component parent)
showSaveDialog(Component parent)
以上方法都可以使得一个有模式对话框显示在桌面上,该对话框称作文件对话框。文件对话框将在参数指定的组件parent的正前方显示,如果parent为null,则在系统桌面的正前方显示。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值