- 浏览: 695758 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (270)
- Ant Tool Script (12)
- XMLDigest (5)
- MyEclipse8.6 (1)
- RedHat (5)
- SVNVersionController (4)
- BatOperation (6)
- JspAndFaceWeb (66)
- javaSwing (18)
- PHP (12)
- J2SE (6)
- TestToolAndTestManual (12)
- C# (34)
- Java PatternDesign (20)
- Axis2AndWebService (5)
- ITLive (2)
- DBAndControl (10)
- C/C++ (8)
- Andriod (7)
- Python (7)
- JavaWork (16)
- Android-QA (1)
- Apache-Wicket (1)
- POI (1)
- JQuery (2)
- Struts2 (1)
- Flex&Flash (6)
- sdsdsd (0)
- 1212 (0)
最新评论
-
anayomin:
对九楼继续改进
public static <T> ...
Java List 分页 -
H4X0R:
来学习学习,赞一个
Aqua Data Studio 导出SQL -
yankai0219:
现在出现这个错误 Fatal error: Class 'PH ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
yankai0219:
您好,我在搭建环境中提示PHPUnit_Framework_T ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
wilsonchen:
chenhailong 写道wilsonchen 写道chen ...
C# RSA和Java RSA互通
Swing读书笔记标签与按钮的使用与介绍
Border,Icon,JLabel,JButton,JToggleButton 6-1:Border的使用 Border类是应用在描绘组件的边界,Border本身是一个interface,里面定义了3个方法,为getBorderInsets()、isBorderOpaque() 、与isBorderOpaque()、与paintBorder().若您想使用Border类来绘制你的窗口边界,您必须先实现(implements)这3个方法,可说 是有点麻烦。还好,java本身提供了另一个类,它已经实现了Border类所有的方法,且提供许多不同的边界样式供用户使用,用户 只需要选择到底要用哪个样式即可,不需要理会如何去画出这个边界,因为这个类已经都帮您实现好了,这个类就是 BorderFactory,下面是borderFactory的类层次结构图。
BorderFactory的类层次结构图:
java.lang.Object
-----------javax.swing.BorderFactory
/** * */ package com; /** * @author chenhailong * */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SimpleBorder{ public static void main(String[] args){ JFrame f=new JFrame("SimpleBorder"); Container content=f.getContentPane(); JButton b=new JButton(); //createLineBorder方法指定边界的颜色与宽度. b.setBorder(BorderFactory.createLineBorder(Color.blue,10)); content.add(b); f.setSize(200,150); f.setVisible(true); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } }
BorderFactory提供了以下方法: ------------------------------------------------------- static Border creatBevelBorder(int type)
建立一个立体的边界,并由参数type指定为凹陷或突起,type可为 BevelBorder.LOWERED表示凹陷,或是BevelBorder.RAISED表示突起。
static Border createBevelBorder(int type,Color highlight,Color shadow)
建立一个立体的边界,并指定突边与阴 影的颜色。
static Border createBevelBorder(int type,Color highlightOuter,Color highlightInner,Color shadowOuter ,Color shadowInner)
建立一个立体的边界,并指定内外部的突边与阴影的颜色。
static CompoundBorder createCompoundBorder()
建立一个复合边界。
static CompoundBorder createCompoundBorder(Border outsideBorder,Border insideBorder)
建立一个复合边界,并指定它 的内外边界。
static Border createEmptyBorder()
建立一个空的边界。
static Border createEmptyBorder(int top,int left,int bottom,int right)
建立一个空的边界,并指定上下左右 的宽度,在这些宽度中不能作绘图的效果。
static Border createEtchedBorder()建立一个四周有凹痕的边界。
static Border createEtchedBorder(Color highlight,Color shadow)
建立一个四周有凹痕的边界,并指定突边与阴影 的颜色。
static Border createLineBorder(Color color)
建立一个线务边界,并指定线条的颜色。
static Border createLineBorder(Color color,int thicness)
建立一个线务边界,并指定线条的颜色与宽度。
static Border createLoweredBevelBorder()
建立一个具有凹陷效果的边界,意义与
createBevelBorder(BevelBorder.LOWERED)相同。
static MatteBorder createMatteBorder(int top,int left,int bottom,int right,Color color)
建立一个垫子边界,这跟
createEmptyBorder有点像,但可以指定边界颜色。
static MatteBorder createMatteBorder(int top,int left,int bottom,int right,Icon tileIcom)
建立一个垫子边界,并 指定边界的花纹。
static Border createRaisedBevelBorder(
)建立一个具有突起效果的边界,意义与createBevelBorder(BevelBorder. RAISED)相同。
static TitledBorder createTitledBorder(Border border)
建立一个标题边界,但没有标题名称。
static TitledBorder createTitledBorder(Border border,String title)
建立一个标题边界,并指定标题名称,标题默认位 置是TitledBorder.DEFAULT_JUSTIFICATION与TitledBorder.DEFAULT_POSITION,也就是左上方。
static TitledBorder createTitledBorder(Border border,String title,int titleJustification,int titlePosition)
建立一个标题边界,并指定标题名称与标题位置,参数titleJustification可为:
TitledBorder.LEFT
TitledBorder.CENTER
TitledBorder.RIGHT
TitledBorder.DEFAULT_JUSTIFICATION(leading)
参数titlePosition可为:
TitedBorder.ABOVE_TOP
TitledBorder.TOP(sittin on the top line)
TitledBorder.BELOW_TOP
TitledBorder.ABOVE_BOTTOM
TitledBorder.BOTTOM(sitting on the bottom line)
TitledBorder.BELOW_BOTTOM
TitledBorder.DEFAULT_POSITION(top)
static TitledBorder
createTitledBorder(Border border,
String title,int titleJustification,int titlePosition, Font titleFont)
建立一个标题边界,并指定标题名称,标题位置与字体。
static TitledBordercreateTitledBorder(Border border,
String title,int titleJustification,int titlePosition, Font titleFont,Color titleColor)
建立一个标题边界,并指定标题名称,标题位置、字体与标题颜 色。
static TitledBordercreateTitledBorder(String title)
建立一个标题边界,并指定标题名称,其他为默认值。
/** * */ package com; /** * @author chenhailong * */ import javax.swing.border.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class BorderDemo{ public static void main(String[] args){ JFrame f=new JFrame("BorderDemo"); Container content=f.getContentPane(); JLabel label=new JLabel(); label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));//凹陷效果 label.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));//突起效果 //凹陷效果,并设置突出与阴影的颜色 label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.red,Color.blue)); //凹陷效果,并设置内外部突出与阴影的颜色 label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.red,Color.blue,Color.yellow,Color.green)); /*EmptyBorder:建立一个空的边界,可指定边界的宽度,这在区隔组件之间的距离时可能用到。 *EtchedBorder:建立一个四周有凹痕的边界,也可以指定突边与阴影的颜色. */ label.setBorder(BorderFactory.createEtchedBorder()); //设置四周有凹痕的边界,并指定内外部的突边与阴影的颜色 label.setBorder(BorderFactory.createEtchedBorder(Color.red,Color.blue)); //LineBorder:建立一个线条边界,并可以指定线条的颜色与宽度。 label.setBorder(BorderFactory.createLineBorder(Color.blue,5)); //MatteBorder:建立一个Matte边界,这个方法与createEmptyBorder()有点像,但可以指定边界颜色 //或利用Icon产生边界花纹. label.setBorder(BorderFactory.createMatteBorder(5,5,5,5,Color.green)); label.setBorder(BorderFactory.createMatteBorder(25,25,25,25,new ImageIcon(".\\icons\\star.gif"))); /*CompoundBorder: 建立一个复合边界,并可以指定它的内外边界,例如我们可以指定它的外边界为LineBorder, *它的内边界为MatteBorder。 */ label.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.blue,5), BorderFactory.createMatteBorder(20,20,18,18,new ImageIcon(".\\icons\\star.gif")))); //TitleBorder:建立一个标题边界,我们可以指定边界的标题名称、标题位置、字体与标题颜色。 label.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue,5),"Line Border" ,TitledBorder.LEFT,TitledBorder.TOP)); label.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.blue,5),"Line Border" ,TitledBorder.LEFT,TitledBorder.ABOVE_TOP,new Font("SansSerif",Font.ITALIC,14),Color.red)); content.add(label); f.setSize(200,150); f.setVisible(true); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } }
JLabel的使用:
类层次结构图:
java.lang.Object
--java.awt.Component
--java.awt.Container
--javax.swing.JComponent
--javax.swing.JLabel
在以前的许多范例,我们已经使用过JLabel这个组件,相信大家对此组件应该不会感到陌生,接下来我们来深入了解JLabel 的各种我特性。
一般而言:我们最常在JLabel上放置文字或图形,也因此我们常常需要调整JLabel上文字或图形。在JLabel实现了 SwingConstants这个interface,而这个interface主要是定义一些组件排列方式的参数:
TOP
LEFT
RIGHT
BOTTOM
CENTER
NORTH
EAST
WEST
SOUTH
NORTH_
EAST
SOUTH_EAST
SOUTH_WEST
NORTH_WEST
HORIZONTAL
VERTICAL LEADING
置于前端 TRAILING 置于后端。
在swing中,有相当多的类均实现了SwingConstants这个interface,如AbstractButton、JCheckBoxMenuItem、JLabel、 JProgressBar、JSeparator、JSlider、JTextField、JTabbedPane、JToolbar等等,因此当你使用到这些组件时,你就可以在适当 的时候,利用SwingConstants的参数来定义组件的位置了。 JLabel共有6种构造函数,如下:
JLabel构造函数:
JLabel():建立一个空白的JLabel组件。
JLabel(Icon image):建立一个含有Icon的JLabel组件,Icon的默认排列方式是CENTER. JLabel(Icon image,int horizontalAlignment):建立一个含有Icon的JLabel组件,并指定其排列方式。
JLabel(String text):建立一个含有文字的JLabel组件,文字的默认排列方式是LEFT. JLabel(String text,int horizontalAlignment):建立一个含有文字的JLabel组件,并指定其排列方式。 JLabel(String text,Icon icon,int horizontalAlignment):建立一个含有文字与Icon的JLabel组件,并指定其排列方式, 文字与Icon的间距,默认值是4个pixels.
/** * */ package com; /** * @author chenhailong * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JLabelDemo1{ public static void main(String[] args){ JFrame f=new JFrame("JLabelDemo1"); Container contentPane=f.getContentPane(); JLabel label=new JLabel(); label.setText("Hello"); label.setHorizontalAlignment(JLabel.RIGHT); label.setVerticalAlignment(JLabel.TOP); contentPane.add(label); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } }
JButton的使用:
JButton的类层次结构图:
java.lang.Object
--java.awt.Component
--javax.swing.JComponent
--javax.swing.AbstractButton
--javax.swing.JButton JButton
是继承AbstractButton类而来,而AbstractButton本身是一个抽象类,里面定义了许多组件设置的方法与组件事件驱动 方法(Event handle),如addActionListener()、setText等,详情请看相关手册,所提供的方法不下50种,可说是非常重要的一个 类。事实上,AbstractButton类不公被JButton所继承,它同时还被JMenuItem、JToggleButton、JCheckBox、JRadioButton等类所 继承,提供给这些类强大且方便的功能,而且在使用上更能掌握这些组件的特性。我们此节先来了解JButton与JToggleButton的特 性,其余类在后面各节介绍。
JButton共有4个构造函数:
JButton():建立一个按钮。
JButton(Icon icon):建立一个有图像的按钮。
JButton(String icon):建立一个有文字的按钮。
JButton(String text,Icon icon):建立一个有图像与文字的按钮。
由JButton的构造函数可以看出:JButton与JLabel的使用相当类似,只是JButton少了排列方式的参数罢了。要是我们想设置 JButton内文字或图像的水平排列方式,我们可以利用AbstractButton抽象类所提供的setHorizontalAlignment()方法来达成。 JButton在使用上与JLabel相当类似,只是类的设计方式有所不同,JLabel类自行提供组件排列方式的方法,而JButton是继承 AbstractButton抽象类的方法来排列按钮内的内容。为什么JButton不自行提供排列方式等方法呢?主要是因为JButton与JMenuItem 、JToggleButton、JCheckBox、JRadioButton组件有许多共同的物性,例如它们都会有“按”的操作、都可以插入Icon与文字、 都可设置快捷键、都可呈现Enable或Disable状态等等,因此将AbstractButton类独立出来,实现这些共通的方法,再由其他类来继 承,将可增加程序结构对象化与模块化的特性,也让程序更容易维护. JButton类所提供的方法非常少,大部份都会用到AbstractButton抽象类所提供的方法。
/** * */ package com; /** * @author chenhailong * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JButtonDemo1{ public static void main(String[] args){ JFrame f=new JFrame("JButtonDemo1"); Container contentPane=f.getContentPane(); /*你也可以用下面这个方式代替: *JButton b=new JButton(); *b.setIcon(new ImageIcon(".\\icons\\hand.jpg")); *b.setText("按我"); */ JButton b=new JButton("按我"); /*如果没有设置文字的位置,系统默认值会将文字置于图形的右边中间位置。 */ b.setHorizontalTextPosition(JButton.CENTER); b.setVerticalTextPosition(JButton.BOTTOM); contentPane.add(b); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } }
好了 就到这把,嘻嘻。有时间在写!!!!!!
发表评论
-
Java Create you own Annotations and Using Them
2013-07-23 13:38 992如何创建一个Annotation呢?其实也是很简单的。 ... -
Slider,Timer,Progress的使用
2011-02-12 07:54 3258滑动杆(Slider),时间控制(Timer),进度元件(Pr ... -
JFileChoose,JColorChooer,JSeparator
2011-02-12 07:52 1666文件选择对话框,颜色选择对话框,分隔线的使用与介绍.13-1: ... -
菜单与工具栏的使用与介绍
2011-02-12 07:50 1527使用JMenuBar组件: JMenu ... -
对话框(Option Pane与Dialog)的使用与介绍
2011-02-12 07:49 3494使用JDialog组件:JDialog ... -
树(Tree)的使用与介绍
2011-02-12 07:47 1520使用JTree组件: java.lang.Object ... -
文字输入组件的使用与介绍
2011-02-12 07:45 1850认识Swing的文字输入组 ... -
JTable的事件处理
2011-02-12 07:43 1662JTable的事件处理 ... -
表格(Table)的使用与介绍
2011-02-12 07:39 2009使用JTable组件: 类层次结构图: java.lang ... -
复选框、选项按钮、列表方框、下拉式列表的使用与介绍
2011-02-12 07:31 20367-1:使用JCheckBox组件:类层次结构图: java ... -
JavaSwing的JScrollBar使用
2011-01-09 18:57 8791JavaSwing的JScrollBar使用 ... -
JavaSwing的InternalFrame的操作
2011-01-09 11:59 2926JavaSwing的InternalFrame的操 ... -
JavaSwing键盘的操作
2011-01-08 19:22 3344JavaSwing键盘的操作 键盘事件处理: Ke ... -
JavaSwing鼠标的操作
2011-01-08 18:42 2207JavaSwing的鼠标操作函数 MouseList ... -
javaSwing的监听探索
2011-01-07 07:45 1647事件处理:Source ... -
Swing读书笔记
2011-01-07 07:01 12381-1:Swing常用的package ... -
计算中英文合并的字符串长度
2011-01-06 23:16 1304计算中英文合并的字符串长度 下面介绍一下啊求中英文合 ...
相关推荐
这篇Swing读书笔记目录旨在帮助开发者更好地理解和掌握Swing的相关知识,通过阅读和学习,可以提升在Java GUI编程上的技能。 首先,Swing是Java Foundation Classes (JFC)的一部分,它是Sun Microsystems为Java平台...
### Swing读书笔记:深入理解Swing的包与版面结构 #### Swing的常用包解析 Swing作为Java中用于创建图形用户界面(GUI)的主要库,提供了丰富的组件和功能,其核心包及其作用如下: 1. **`javax.swing`**: - 这是...
如果按钮是armed状态,我们使用高亮的颜色来画圆形按钮的背景,否则我们使用按钮的背景颜色来画圆形按钮的背景。然后,我们使用super.paintComponent(g)方法来画标签和焦点矩形。 在paintBorder方法中,我们使用...
在实际应用中,标签常与其他组件(如按钮、文本框等)组合使用,创建更复杂的用户界面。例如,可以将标签放在按钮的旁边,提供操作提示。 9. 综合实例 以下是一个简单的Swing程序,展示如何创建并设置一个标签: ``...
本篇文章将深入探讨 Swing 中按钮的使用方法。 一、JButton 类的创建与设置 在 Swing 中,按钮组件是由 javax.swing.JButton 类表示的。我们可以使用 JButton 的构造函数来创建一个新的按钮实例: ```java ...
根据给定的信息,本文将详细解释如何在Java Swing框架中创建具有圆角效果的自定义按钮。这将涉及Swing的基本概念、自定义组件的方法以及如何实现特定的视觉效果。 ### Swing简介 Swing是Java平台的一个图形用户...
- 在处理鼠标事件时,可能需要使用`SwingUtilities.convertPointToScreen()`或`convertPointFromScreen()`方法将坐标转换为屏幕坐标系,以便正确计算鼠标与按钮的相对位置。 这个拖动按钮的例子展示了Swing如何灵活...
### Java Swing知识点详解 #### 一、JSplitPane:实现窗口动态分割 ...综上所述,通过以上介绍我们可以了解到Java Swing中的一些重要组件和布局管理器的使用方法,这些知识对于开发复杂的GUI应用程序是非常有用的。
本教程将深入讲解Java Swing中的菜单按钮及其使用方法,非常适合初学者。 一、JMenuBar与JMenu 在Swing中,菜单通常由`JMenuBar`和`JMenu`组成。`JMenuBar`是位于窗口顶部的一行菜单,而`JMenu`则是`JMenuBar`下的...
### 基于Java Swing的超链接标签与按钮实现 #### 概述 在Java Swing框架下,我们经常需要在用户界面中嵌入超链接功能,以提供更加丰富的交互体验。例如,在`JTable`(一种用于显示表格数据的组件)中添加超链接...
Java GUI 编程实践 - 使用按钮和标签实现内容切换 在本节中,我们将学习如何使用 Java 语言编写一个简单的图形用户界面(GUI)程序,该程序包含一个按钮和一个标签,单击按钮时,标签的内容将在“你好”和“再见”...
《Java Swing图形界面开发与案例详解》全书共20章,其中第1~2章主要介绍有关Swing的基础知识,包括Swing的基本概述、如何使用IDE开发Swing程序;第3~15章结合众多实例和问题介绍最常用、最有用的组件及其应用方法...
本篇文章将详细讲解如何利用Swing来实现自定义按钮,特别是根据不同形状的图片来绘制按钮,并赋予按钮三种状态(默认、鼠标悬停和按下)的样式。 首先,我们要了解Swing中的JButton类,它是用于创建按钮的基本组件...
在Java的Swing库中,开发用户界面时经常会用到文件选择、按钮控件和弹出窗口等功能。这些是构建图形用户界面(GUI)的基本组件,使得用户能够与应用程序进行交互。下面我们将深入探讨这些主题。 1. **文件选择**: ...
JButton 按钮可以根据需要自定义外观和行为,下面将对 JButton 按钮的实现示例进行详细介绍。 一、JButton 按钮的构造方法 JButton 按钮提供了多种构造方法,分别是: * JButton():创建不带有设置文本或图标的...
Swing 容器使用 Swing 中的容器是指能够容纳其他组件的组件,它们是构建 GUI 应用程序的基础。常用的 Swing 容器包括 JFrame、JPanel、JApplet 等。 JLabel 组件是 Swing 库中最基本的组件之一,它可以用来显示...
Java读书笔记.pdf Java读书笔记.pdf是关于Java编程语言的读书笔记,涵盖了Java的基础知识、语法、编程技术、应用场景等方面的内容。下面是从该文件中生成的相关知识点: 一、Java基础知识 * Java的历史发展:Java...
### Java Swing 知识总结学习笔记 #### 一、Swing 概述 Swing 是一个用于构建桌面应用程序的 Java 图形用户界面 (GUI) 工具包,它基于 Java Abstract Window Toolkit (AWT) 构建而成。Swing 提供了更丰富的组件集...
这篇“SwingHacks学习笔记(2)-----自定义JLabel,JButton”博客文章深入探讨了如何利用Swing自定义组件,特别是JLabel和JButton,以实现更丰富的用户交互。 JLabel是Swing中用于显示文本、图像或两者组合的基本组件...