java swing 圆形图标_java swing 圆形按钮
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
class RButton extends JButton {
public RButton(String label) {
super(label);
// 这些声明把按钮扩展为一个圆而不是一个椭圆。
Dimension size = getPreferredSize();
size.width = size.height = Math.max(size.width,
size.height);
setPreferredSize(size);
//这个调用使JButton不画背景,而允许我们画一个圆的背景。
setContentAreaFilled(false);
this.setBackground(Color.GRAY);
}
// 画圆的背景和标签
protected void paintComponent(Graphics g) {
if (getModel().isArmed()) {
// 你可以选一个高亮的颜色作为圆形按钮类的属性
g.setColor(Color.lightGray);
}
else {
g.setColor(getBackground());
}
g.fillOval(0, 0, getSize().width - 1,
getSize().height - 1);
//这个调用会画一个标签和焦点矩形。
super.paintComponent(g);
}
// 用简单的弧画按钮的边界。
protected void paintBorder(Graphics g) {
g.setColor(getForeground());
g.drawOval(0, 0, getSize().width - 1,
getSize().height - 1);
}
// 侦测点击事件
Shape shape;
public boolean contains(int x, int y) {
// 如果按钮改变大小,产生一个新的形状对象。
if (shape == null ||
!shape.getBounds().equals(getBounds())) {
shape = new Ellipse2D.Float(0, 0,
getWidth(), getHeight());
}
return shape.contains(x, y);
}
// 测试程序 public static void main(String[] args) { // 产生一个带‘Jackpot’标签的按钮。 JButton button = new RButton("Jackpot"); ImageIcon ic = new ImageIcon("E://clientForMssql//Icons//item_group.gif"); JButton button2 = new JButton(ic); button.setBackground(Color.GRAY); // 产生一个框架以显示这个按钮。 JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //frame.getContentPane().setBackground(Color.GRAY); frame.getContentPane().add(button); frame.getContentPane().add(button2); frame.getContentPane().setLayout(new FlowLayout()); frame.setSize(200, 200); frame.setVisible(true); }}
java swing 圆形图标_java swing 圆形按钮相关推荐
- java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...
Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果) package swing; import java.awt.AWTException; import java ...
- java qq ui界面_java swing 创建一个简单的QQ界面教程
记录自己用java swing做的第一个简易界面. LoginAction.java package com.QQUI0819; import javax.swing.*; import java.a ...
- java swing 控件_Java Swing组件
一. java swing 组件技术简介 1.swing的特性 l 是AWT的扩展,swing比AWT提供了更多的组件和外观 l 它是纯java代码编写(除了JFrame.JDial ...
- java gui拖拽_Java Swing拖放
Java Swing教程 - Java Swing拖放 拖放(DnD)是一种在应用程序中传输数据的方法. DnD允许我们通过拖动组件并将其拖放到另一个组件上来传输数据. 拖动的组件称为拖动源;它提供要 ...
- java swing实现计算器_Java swing实现的计算器功能完整实例
本文实例讲述了Java swing实现的计算器功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.*; import java.awt.event ...
- java.swing调难度_Java Swing BorderLayout调整了难度
你可以在你的情况下使用的是 GridLayout,这里有两个JButtons会在JFrame调整大小时自行调整大小. import java.awt.GridLayout; import javax. ...
- java swing事件机制_java SWing事件调用的两种机制
/** * java swing中事件调用的两种机制: * (一)响应机制 * (二)回调机制 */ package test; import java.awt.*; import java.awt. ...
- java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...
这篇文字将要学习以下知识点: 1.如何给JButton按钮添加鼠标点击事件监听器 #1.addMouseListener(MouseListener l) 给JButton添加一个鼠标点击监听器l ...
- java scrollpane 设置透明_java swing 之 JScrollPane(滚动面板)的使用
/** * java swing 之JScrollPane面板 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 * JScrollPane面板,JscrollP ...
- java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...
最新文章
- 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...
- redis五种数据类型的应用场景_Redis五种不同的数据类型
- 计算机网络与影视多媒体技术 南京理工大学,计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文(8页)-原创力文档...
- 华中科技大学应用高等工程数学_专业解析【第152期】| 机械电子工程课程设置及研究方向...
- 【转】完整java开发中JDBC连接数据库代码和步骤
- Windows Phone 8 与 windows 8 开发技术概览
- 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁
- matlab中 编程如和隐藏,在matlab中编程(如何实时处理)
- 对话短文本语义匹配-冠军代码
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_7 响应json数据之发送ajax的请求...
- Android的数据库(SQLite)学习
- tomcat乱码问题
- STM32 ADC工作原理
- 装完nvme固态经常蓝屏_方案解决:NVMe SSD安装Win7蓝屏0x0000007B快速解决方案
- c#之List深度复制
- MATLAB 自动控制原理 传递函数单位阶跃响应曲线绘制
- 基于SSM的大学生创业众筹平台网站 毕业设计-附源码212000
- Another app is currently holding the yum lock解决方法
- 无线射频芯片CC2540F256RHAR 中文资料介绍
- 线上引流推广渠道有哪些,哪个效果好,企业应该怎么做?
热门文章
- PageHelper.startPage的作用
- (6)微信运动点赞(下)-JsDroid引流脚本混合式开发技术系列教程By飞云脚本学院
- 简单的使用Python处理Excel数据文件
- python grpc基于流式传输实现长连接
- 工商管理学python_工商管理专业以数据分析师为目标怎么样?
- Echarts南丁格尔玫瑰图、锥形柱状图、渐变曲线图
- 产品快速迭代的五大要点
- Android 减小APK包体大小方法总结
- 打开只能在微信客户端打开的链接
- mysql配置文件中bind_bind配置语法详解 | 羽飞博客