- 浏览: 682359 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (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 942如何创建一个Annotation呢?其实也是很简单的。 ... -
Slider,Timer,Progress的使用
2011-02-12 07:54 3213滑动杆(Slider),时间控制(Timer),进度元件(Pr ... -
JFileChoose,JColorChooer,JSeparator
2011-02-12 07:52 1607文件选择对话框,颜色选择对话框,分隔线的使用与介绍.13-1: ... -
菜单与工具栏的使用与介绍
2011-02-12 07:50 1482使用JMenuBar组件: JMenu ... -
对话框(Option Pane与Dialog)的使用与介绍
2011-02-12 07:49 3389使用JDialog组件:JDialog ... -
树(Tree)的使用与介绍
2011-02-12 07:47 1490使用JTree组件: java.lang.Object ... -
文字输入组件的使用与介绍
2011-02-12 07:45 1816认识Swing的文字输入组 ... -
JTable的事件处理
2011-02-12 07:43 1620JTable的事件处理 ... -
表格(Table)的使用与介绍
2011-02-12 07:39 1958使用JTable组件: 类层次结构图: java.lang ... -
复选框、选项按钮、列表方框、下拉式列表的使用与介绍
2011-02-12 07:31 19867-1:使用JCheckBox组件:类层次结构图: java ... -
JavaSwing的JScrollBar使用
2011-01-09 18:57 8731JavaSwing的JScrollBar使用 ... -
JavaSwing的InternalFrame的操作
2011-01-09 11:59 2866JavaSwing的InternalFrame的操 ... -
JavaSwing键盘的操作
2011-01-08 19:22 3294JavaSwing键盘的操作 键盘事件处理: Ke ... -
JavaSwing鼠标的操作
2011-01-08 18:42 2163JavaSwing的鼠标操作函数 MouseList ... -
javaSwing的监听探索
2011-01-07 07:45 1594事件处理:Source ... -
Swing读书笔记
2011-01-07 07:01 12021-1:Swing常用的package ... -
计算中英文合并的字符串长度
2011-01-06 23:16 1264计算中英文合并的字符串长度 下面介绍一下啊求中英文合 ...
相关推荐
Swing读书笔记,Swing读书笔记,Swing读书笔记
NULL 博文链接:https://huangrongyou.iteye.com/blog/1610287
java swing 笔记
几乎覆盖所有swing标签 的使用,拖拉控件即可实现自己想要的效果
swing默认按钮样式不敢恭维,好在扩展性不错。
Swing 按钮的使用 博客地址:http://blog.csdn.net/yiwenyoucod
主要介绍了Java编程实现swing圆形按钮实例代码,涉及两个简单的Java实现按钮的代码,其中一个具有侦测点击事件的简单功能,具有一定借鉴价值,需要的朋友可以参考。
JAVA中Jtable标签设置超级链接:基于Java Swing的超链接标签和超链接按钮的实现,让你跟好的认识
《Java Swing图形界面开发与案例详解》全书共20章,其中第1~2章主要介绍有关Swing的基础知识,包括Swing的基本概述、如何使用IDE开发Swing程序;第3~15章结合众多实例和问题介绍最常用、最有用的组件及其应用方法...
java swing 菜单按钮 基础篇 我根据课程慢慢上传的 适合初学者 实用的好东西 大家快来呀!!!
swing自定义按钮,根据不同形状图片绘制按钮,并赋予按钮三种状态的样式
Swing 文件选择&按钮控件&弹出窗口
再百度搜了好久都没找到类似导航按钮 拖动变换位置的例子, 这是自己写的一个~ 希望对大家有帮助。 顺便赚点小积分,方便下载。
Java Swing组件:Jlist学习笔记Java Swing组件:Jlist学习笔记
Java Swing是目前图形界面设计的主流开发工具,《Java Swing图形界面开发与案例详解[1]》从实用的角度出发,通过大量实例全面介绍Java Swing中各种组件的应用及图形界面的开发技术。《Java Swing图形界面开发与案例...
Java基于要SWing技术自定义标签的边界效果,通过javax.swing.border.Border 接口,进行自定义边界类OwnBorder。可以实现空边界(EmptyBorder)、斜切边界(BevelBorder)、蚀刻边界(EtchedBorder)、线条边界...
除了我们已经熟悉的组件如按钮、 复选框和标签外, Swing还包括许多新的组件, 如选项板、 滚动窗口、树、表格。许多一些开发人员已经熟悉的组件,如按钮,在Swing都增加了新功 能。而且,按钮的状态改变时按钮的...
Java swing 知识总结学习笔记,全面总结了在Java学习中关于Swing的相关知识。
Swing 菱形水晶按钮,鼠标淡入淡出效果。
swing 鼠标事件 loading效果