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 圆形按钮相关推荐

  1. java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...

    Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果) package swing; import java.awt.AWTException; import java ...

  2. java qq ui界面_java swing 创建一个简单的QQ界面教程

    记录自己用java swing做的第一个简易界面. LoginAction.java package com.QQUI0819; import javax.swing.*; import java.a ...

  3. java swing 控件_Java Swing组件

    一.        java swing 组件技术简介 1.swing的特性 l  是AWT的扩展,swing比AWT提供了更多的组件和外观 l  它是纯java代码编写(除了JFrame.JDial ...

  4. java gui拖拽_Java Swing拖放

    Java Swing教程 - Java Swing拖放 拖放(DnD)是一种在应用程序中传输数据的方法. DnD允许我们通过拖动组件并将其拖放到另一个组件上来传输数据. 拖动的组件称为拖动源;它提供要 ...

  5. java swing实现计算器_Java swing实现的计算器功能完整实例

    本文实例讲述了Java swing实现的计算器功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.*; import java.awt.event ...

  6. java.swing调难度_Java Swing BorderLayout调整了难度

    你可以在你的情况下使用的是 GridLayout,这里有两个JButtons会在JFrame调整大小时自行调整大小. import java.awt.GridLayout; import javax. ...

  7. java swing事件机制_java SWing事件调用的两种机制

    /** * java swing中事件调用的两种机制: * (一)响应机制 * (二)回调机制 */ package test; import java.awt.*; import java.awt. ...

  8. java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...

    这篇文字将要学习以下知识点: 1.如何给JButton按钮添加鼠标点击事件监听器 #1.addMouseListener(MouseListener l)  给JButton添加一个鼠标点击监听器l ...

  9. java scrollpane 设置透明_java swing 之 JScrollPane(滚动面板)的使用

    /** * java swing 之JScrollPane面板 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 * JScrollPane面板,JscrollP ...

  10. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

最新文章

  1. 通过脚本案例学习shell(五) 通过创建DNS脚本一步一步教你将一个普通脚本规范到一个生产环境脚本...
  2. redis五种数据类型的应用场景_Redis五种不同的数据类型
  3. 计算机网络与影视多媒体技术 南京理工大学,计算机网络多媒体数学库和课件结构设计-计算机仿真论文-计算机论文(8页)-原创力文档...
  4. 华中科技大学应用高等工程数学_专业解析【第152期】| 机械电子工程课程设置及研究方向...
  5. 【转】完整java开发中JDBC连接数据库代码和步骤
  6. Windows Phone 8 与 windows 8 开发技术概览
  7. 第一位女性商业程序员玛丽库姆斯去世,享年 93 岁
  8. matlab中 编程如和隐藏,在matlab中编程(如何实时处理)
  9. 对话短文本语义匹配-冠军代码
  10. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_7 响应json数据之发送ajax的请求...
  11. Android的数据库(SQLite)学习
  12. tomcat乱码问题
  13. STM32 ADC工作原理
  14. 装完nvme固态经常蓝屏_方案解决:NVMe SSD安装Win7蓝屏0x0000007B快速解决方案
  15. c#之List深度复制
  16. MATLAB 自动控制原理 传递函数单位阶跃响应曲线绘制
  17. 基于SSM的大学生创业众筹平台网站 毕业设计-附源码212000
  18. Another app is currently holding the yum lock解决方法
  19. 无线射频芯片CC2540F256RHAR 中文资料介绍
  20. 线上引流推广渠道有哪些,哪个效果好,企业应该怎么做?

热门文章

  1. PageHelper.startPage的作用
  2. (6)微信运动点赞(下)-JsDroid引流脚本混合式开发技术系列教程By飞云脚本学院
  3. 简单的使用Python处理Excel数据文件
  4. python grpc基于流式传输实现长连接
  5. 工商管理学python_工商管理专业以数据分析师为目标怎么样?
  6. Echarts南丁格尔玫瑰图、锥形柱状图、渐变曲线图
  7. 产品快速迭代的五大要点
  8. Android 减小APK包体大小方法总结
  9. 打开只能在微信客户端打开的链接
  10. mysql配置文件中bind_bind配置语法详解 | 羽飞博客