<!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>-->
1 ////////////////////////////////////////////////////////////////////////////////////
2 //
3 // 文件名: nButton.java
4 //
5 // 功 能: 自定义按钮
6 //
7 // 备 注: 按钮设置大小时,应比实际图片大小宽1、高1象素。
8 //
9 /////////////////////////////////////////////////////////////////////////////////////
10 import java.awt.*;
11 import java.awt.geom.*;
12 import javax.swing.*;
13 import java.io.*;
14
15 public class nButton extends JButton
16 {
17
18 Image img;
19 public Color back;
20 ImageIcon icon = new ImageIcon ();
21 public nButton()
22 {
23 super ();
24 Dimension size = getPreferredSize ();
25 size.width = size.height = Math.max (size.width, size.height);
26 setPreferredSize (size);
27 //这个调用使JButton不画背景,而允许画一个圆的背景。
28 setContentAreaFilled (false);
29 }
30
31
32 public nButton(String label)
33 {
34 super (label);
35 // 这些声明把按钮扩展为一个圆而不是一个椭圆。
36 Dimension size = getPreferredSize ();
37 size.width = size.height = Math.max (size.width, size.height);
38 setPreferredSize (size);
39
40 //这个调用使JButton不画背景,而允许我们画一个圆的背景。
41 setContentAreaFilled (false);
42 }
43
44 // 画圆的背景和标签
45 protected void paintComponent (Graphics g)
46 {
47 if (getModel ().isArmed ())
48 {
49
50 // 可以选一个高亮的颜色作为圆形按钮类的属性
51 g.setColor (back);
52 }
53 else
54 {
55 g.setColor (back);
56 }
57 g.fillRect (0, 0, getSize ().width, getSize ().height);
58
59 //这个调用会画一个标签和焦点矩形。
60 super.paintComponent (g);
61 }
62
63
64 public void setImageIcon (Image img)
65 {
66 this.img = img;
67 }
68
69 // 用简单的弧画按钮的边界。
70 protected void paintBorder (Graphics g)
71 {
72 //g.setColor(back);
73 //g.drawRect(-1, -1, getSize().width + 1 , getSize().height + 1);
74 }
75
76
77 // 侦测点击事件
78 Shape shape;
79 public boolean contains (int x, int y)
80 {
81 // 如果按钮改变大小,产生一个新的形状对象。
82 if (shape == null ||
83 !shape.getBounds ().equals (getBounds ()))
84 {
85 shape = new Ellipse2D.Float (0, 0, getWidth (), getHeight ());
86 }
87 return shape.contains (x, y);
88 }
89 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
90 //下面都是测试代码
91 public void init ()
92 {
93 icon = new ImageIcon (getClass ().getResource ("clear1.jpg"));
94 this.setIcon((Icon) icon) ;
95 icon = new ImageIcon (getClass ().getResource ("clear2.jpg"));
96 this.setRolloverIcon((Icon) icon);
97 this.setPressedIcon ((Icon) icon);
98 //return icon;
99 }
100 public static void main (String args[])
101 {
102 JFrame frame = new JFrame ("test");
103 frame.setLayout(null);
104 nButton btn = new nButton();
105 btn.init();
106 btn.back = frame.getContentPane ().getBackground () ;
107 btn.setToolTipText ("test");
108 btn.setBounds (100,100 ,62,21) ;
109 frame.add (btn);
110 frame.setSize (300,300);
111 frame.setVisible (true);
112 frame.setDefaultCloseOperation (3);
113 }
114
115 }
116
117
分享到:
相关推荐
完整版扩展按钮控件.rar
易语言模块扩展按钮控件.rar
Swift可扩展按钮效果,同时支持多种按钮状态
对话框文本文档中加法器+收缩扩展按钮+点击文本变化。 程序运行正确,环境为VS2010 程序中中含有注释和具体步骤
可扩展按钮效果,同时支持多种按钮状态。.zip,使用方便快捷的可扩展按钮
易语言源码扩展按钮控件.7z
可扩展按钮是轻量级自定义按钮,可在点击时自
扩展按钮控件.zip易语言程序源码资源下载扩展按钮控件.zip易语言程序源码资源下载 1.适合学生做毕业设计用 2.适合程序员学习研究用 3.适合新手自学研究使用
C#脉冲效果的圆角和圆形按钮,通过继承原生Button控件重绘实现,动态扩展按钮范围类似脉冲,可指定边框大小颜色、脉冲变化速度范围、渐变颜色、添加图片等。循环扩展脉冲效果,定时器在控件扩展中的使用。 Winform...
一个简单的CButtonEx,可以支持 (1)jpeg图片按钮; (2)png图片按钮; (3)gif图片(第一帧)按钮; (4)直接添加tooltip提示信息; (5)普通/特殊两类按钮
NC65开发课件之扩展开发
文字转语音浏览器扩展按钮 安装 :warning: 似乎当前使用现有安装的用户可以继续使用这些扩展,但是在没有Google批准的情况下,尚不清楚该扩展将持续多长时间。 一个解决方案正在研究中; 在问题解决之前,请耐心...
ncc前段代码样例纯属搬运
在U9界面上添加按钮的三种方法总结 1、在工具栏上添加 2、在功能区添加 3、在功能区下拉列表上添加
提供对您的Chrome扩展程序的快速图标访问。 在原始扩展按钮扩展上进行了改进。 -仅打开一个扩展选项卡-开源资源可从https://git.io/vuuSc获得 支持语言:English
Buttons提供了一些基本的按钮,比如打印,导出之类的按钮,也提供了API让用户自己扩展按钮,触发自定义的操作。 当在DataTable中显示数据时,对于终端用户来说,他们有能力从DataTable中获取数据,并将其提取到一个...
这是一款简单的Bootstrap4按钮样式扩展库。该Bootstrap4按钮样式扩展库通过定义CSS,来为bootstrap 4原生按钮添加3D按钮,带图标的按钮,圆角按钮,以及为按钮添加更多的可用颜色,非常实用。
MFC的CBitmapButton的扩展类,实现了: 按钮正常、按下、弹起、禁用等不同状态图片切换; 鼠标经过按钮时按钮状态图片的改变; 鼠标指针在按钮上时形状的改变; 异形按钮,利用按钮自绘实现了特殊形状按钮; 按钮...
再点击顶部弹窗的添加扩展按钮,完成安装。 由于Edge浏览器会自动禁用新安装的扩展,所以我们需手动开启。在地址栏输入 edge://extensions/,回车进入扩展管理界面,点击WeTab新标签页右侧的启用。主页将自动替换为...
只需转到网站,单击所需的图像,然后单击该图像右下角的此扩展按钮或下载按钮即可。它将图像直接下载到您的下载文件夹,并使用图像标题名称命名。就这么简单。 该扩展程序允许用户单击一次即可从500px.com下载图像...