创建一个圆形的按钮

mfc 绘制 圆形按钮 继承CButton 头文件 // MyButton 圆形按钮 class MyButton : public CButton { private: bool is_pressed; //鼠标是否按下 public: virtual void PreSubclassWindow(); //修改自绘属性 virtual void DrawItem(LPDRAWITEMSTRUCT /*lpDrawItemS 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 创建一个圆形的按钮 作者:jackliu e-mail:suntoday@eyou.com 这个主题是关于一个圆形的Swing按钮,实际上,这个技巧可以适用于制作任何形状的按钮,我们将实现一个圆形轮廓的按钮。 当去创建一个圆形按钮时有两件事情去做,第一是为了画出一个圆形轮廓而重新实现原来的轮廓实现方法,第二是建立一些动作以便在你当你点击在里面的圆形按钮时有应答反应。 这是一个样例程序,它扩展了JButton


import java.awt.*;

import java.awt.geom.*;

import javax.swing.*;

import java.awt.event.*;



public class RoundButton extends JButton {

    public RoundButton(String label) {

        super(label);

        

        //下面的语句讲述这个按钮变为一个圆形而不是椭圆形

        Dimension size = getPreferredSize();

        size.width = size.height = Math.max(size.width, size.height);

        setPreferredSize(size);

        //不让JButton画背景而允许我们去画一个圆背景

        setContentAreaFilled(false);



    }





    // 画出圆的背景和标签

    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) {

        // 如果按钮改变了尺寸将重新创建一个Shape

        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) {

        JButton button1 = new RoundButton("http://www.77750.com");

        JButton button2 = new RoundButton("欢迎你常来做客");

        button1.setBackground(Color.green);

        button2.setBackground(Color.yellow);

        // 创建一个Fram来显示这个按钮

        JFrame frame = new JFrame();

        frame.getContentPane().add(button1);

        frame.getContentPane().add(button2);

        frame.getContentPane().setLayout(new FlowLayout());

        frame.setSize(450, 350);

        frame.setVisible(true);

        //测试单击事件

        button1.addActionListener(new ActionListener(){

                        public void actionPerformed(ActionEvent e){

                                System.out.println("you click button1!");

                        }

                });

        button2.addActionListener(new ActionListener(){

                        public void actionPerformed(ActionEvent e){

                                System.out.println("you click button2!");

                        }

                });



    }

}



这个RoundButton类扩展了JButton类,因为我们想要保持大多数JButton的特性。在这个RoundButton构造函数中,方法setContentAreaFilled()被调用,它给按钮产生一个长方形焦点,但是没有画出背景。 现在我们需要画出圆的背景。它覆盖了paintComponent()方法,这个方法使用了一个Graphics对象的fillOval()方法画出一个填充的圆形。然后调用超类的paintComponent()方法,paintComponent()在填充圆里画出一个标签。 为了画出一个圆形按钮的周围边框,这个例子也覆盖了paintBorder()方法,如果你不需要一个边框,可以不覆盖这个方法。这个方法调用一个Graphics对象的fillOval()方法来画出一个圆的细边框。 最后,我们需要在当用户单击它时有一个响应,但当超出边界时则没有响应。按缺省情况,一个JButton对于一个长方形按钮区域的反应良好,但JButton对于按钮没有的真正意义上的形状观念,因此它仅仅假定了按钮是一个长方形的。告诉JButton一个真实的形状需要你去覆盖contains()方法。 contains()方法获得一个坐标值,并且如果坐标值包含在按钮里面便返回true,否则就返回false。 运行结果图如下: 打包下载原代码
使用PyQt5创建一个真实的圆形按钮 在自定义按钮类中,我们通过调用setFixedSize方法设置按钮的固定大小为100x100像素,并定义了一个buttonColor属性来存储按钮的颜色。首先,我们启用了抗锯齿效果,然后设置了画笔为无边框,接着使用设置的按钮颜色绘制一个椭圆形,其大小与按钮的大小相同。运行这段代码,你将看到一个具有真实的圆形按钮的窗口。按钮的默认颜色为红色,你可以通过修改CircleButton类中的buttonColor属性来改变按钮的颜色。在主窗口类中,我们首先设置了主窗口的位置和大小,并为其设置了一个标题。 阅读详情

相关推荐

完美实现圆形按钮 - 实现漂亮的圆形按钮的详细指南

现在,我们已经定义了按钮的HTML结构和CSS样式,接下来让我们使用JavaScript为按钮添加交互功能。我们将使用JavaScript来监听按钮的点击事件,并执行相应的操作。接下来,我们将使用CSS来定义按钮的样式。我们将为按钮添加一个类名为"round-button"的CSS类,并为其设置一些样式属性,以使其呈现为圆形。通过将上述代码复制到一个HTML文件中并在浏览器中打开,您将看到一个漂亮的圆形按钮。将上述HTML、CSS和JavaScript代码片段组合在一起,您就可以实现一个完美的圆形按钮了。

2301_79366106的博客 1383

JS制作轮播图——自学笔记

需求:1.鼠标经过轮播图,左右按钮显示,鼠标离开按钮隐藏 2.鼠标点击右侧按钮,图片轮播 3.小圆圈跟着图片变化 4.点击小圆圈播放图片 5.鼠标离开,图片自动轮播,鼠标在图片上时自动轮播停止

m0_68557179的博客 511

“三进制”bonsai27b+NInfer=6g显存闪电侠(token真的自由了!)

本文将1.58-bit三元大模型Bonsai27B成功移植至NInfer推理引擎,并在RTX 4080 SUPER上实现100+ token/s的极速推理。通过自研补丁扩展NInfer支持Ada架构与三元量化格式,解决激活布局、行置换等关键bug,实测PPL 6.445,单流吞吐达96.7–130.8 t/s,20题基准得分16/20。附完整复现包(含文档、工具、源码补丁),零权重分发,助力垃圾显卡跑通27B级模型。

shensanshu的博客 1万+

js 圆形旋钮

js旋钮

w_WebGis_bb的博客 306

线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系

1.diabetes数据集 共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。 Targets为一年后患疾病的定量指标,值在25到346之间。 ...

t18438605018的博客 1万+

影视站泛目录程序(泛目录站群):构建多元化影视内容平台的利器

同时,搭建多元化影视内容平台还能够为平台创造更多商业价值,提升平台的竞争力。构建多元化影视内容平台:通过影视站泛目录程序,影视平台可以整合来自不同渠道和来源的影视资源,打破传统影视平台的局限性,提供更加多样化的影视内容供用户选择。提高用户体验:泛目录站群程序能够自动化处理和分类整理影视资源,提供便捷的搜索功能,使用户能够快速找到所需的影视内容,提升用户的使用体验。增加用户粘性:通过提供多元化的影视资源和个性化的推荐服务,影视站泛目录程序可以吸引用户长时间停留在平台上,增加用户的粘性和忠诚度。

qq_20005121的博客 825

java圆形按钮的设计

java圆形按钮的设计

木须的博客 8918

深入探索 ClickHouse:性能优化之道

在大数据处理的广袤天地里,ClickHouse 宛如一颗璀璨的明星,以其卓越的性能为海量数据的存储与查询提供了强大助力。但要想让 ClickHouse 发挥出极致效能,性能优化至关重要。今天,就让我们一同深入探寻 ClickHouse 的性能优化之路。

arnold66的专栏 1548

html轮播圆形按钮,原生js实现轮播插件(支持左右箭头、圆点按钮、兼容IE8)(原创)...

插件描述:支持左右箭头、圆点按钮、代码注释全、可控效果按钮接口、简单语法、兼容IE8发布时间:2019-05-1500:22:04这是一款使用原生js实现的轮播插件,支持左右箭头切换,圆点按钮切换,自动轮播,兼容IE8,封装插件,代码注释全面,代码易修改,简单的语法。使用时只需要引入css及js相关文件,并在html写一个容器,配置构造实例的参数启用html:css:/*容器尺寸*/#conta...

weixin_42517137的博客 423

Unreal使用nDisplay制作裸眼3D(9宫格)

摘要: nDisplay是虚幻引擎的分布式实时渲染技术,可将内容同步输出到多个显示设备(如LED墙、投影仪等),构建沉浸式可视化系统。其核心功能包括:分布式渲染(支持多台设备协同处理高分辨率内容)、空间透视校正(通过追踪观众动态调整画面几何关系)以及虚拟拍摄应用。配置时需设置集群组件(Cluster、Host、Node、Viewport)定义渲染逻辑,空间组件(nDisplayScreen、ViewPoint)确定投影关系。文中以9宫格配置为例,详细演示了从工程创建到影片渲染合成的全流程,最终通过多视口合成

TxNet 609

软考中级网络工程师通关指南:从学习到实战

本文是软考中级网络工程师备考实用指南,先介绍备考前准备,包括考试时间、形式、分值等基本信息,及引导读者评估自身基础以制定学习计划;再推荐官方教材、辅导书籍、在线课程平台和学习社区等优质资源。随后梳理网络协议、设备配置、安全、规划设计等重点知识,剖析企业网络故障排查与园区网络设计典型案例。还分享真题使用、解题技巧、错题本建立等习题解答方法,给出分阶段备考、时间安排与总结反思的备考计划,最后提供考场答题顺序、检查及心态调整策略,助力考生高效备考、顺利通关。

邓邓子的博客 1856

JavaScript【代码】如何在一个圆上生成按钮

无标题文档 var width = 1024; var height = 720; var circleCenterX = width / 2 - 30; var circleCenterY = height / 2 - 10; var c

张冰庭的专栏 1580

13、7自由度机械臂混合逆运动学算法解析

本文介绍了一种针对7自由度机械臂的混合逆运动学算法,通过引入额外参数Φ解决冗余自由度问题,并实现了避障、避免关节超限和扩大工作空间。该方法采用解析逆运动学求解策略,克服了机械臂在奇异位姿时的配置不连续性问题。通过对比实验验证了该算法在腕部关节角度连续性和位姿可达性方面的优越性,同时结合躯干逆运动学显著扩展了机械臂的工作空间。

rgv23456789的博客 237

react native 创建一个圆形按钮

How to create a circle button in React Native HOW TO CREATE A CIRCLE BUTTON IN REACT NATIVE In this React Native source code example, the source code below illustrate how to create a circle butto...

taoerchun的专栏 3338

YOLO系列算法改进 | 自研篇 | C3k2融合SEFN空间增强前馈网络模块 | 去模糊和提升图像细节特征,精度涨点!| WACV 2025

YOLO系列算法改进 | 自研篇 | C3k2融合SEFN空间增强前馈网络模块 | 去模糊和提升图像细节特征,精度涨点!| WACV 2025 (以YOLO26最新目标检测模型为基础,C3k2融合SEFN空间增强前馈网络模块改进Backbone)

2502_91881744的博客 241

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Qt创建一个圆形按钮

Qt实现圆形按钮

qq_47500842的博客 5292

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python制作圆形按钮_Python在pyqt5中创建一个真实的圆圈按钮

我尝试创建一个圆形按钮,但实际上pyqt仍然创建了一个方形按钮.找到的所有示例都创建了方形按钮并在其中放置了圆形图像,但是当我尝试隐藏按钮的背景时仍然失败,我也尝试添加一些悬停功能,但是应该可以用后缀,所以您可以跳过它.我的代码在这里:from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import QActionfrom ...

weixin_39696665的博客 1663

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python定义一个圆_Python在pyqt5中创建一个实圆形按钮

我试图创建一个圆形按钮,但实际上pyqt仍然创建了一个正方形按钮。全部发现的例子只是创建了一个正方形的按钮,并在其中放置了一个圆形的图像,但是当我试图隐藏按钮的背景时,它还是失败了。我还尝试添加一些悬停功能,但这应该会起作用,所以你可以跳过它。我的代码在这里:from PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtWidgets import ...

weixin_39611382的博客 988

android b半圆形按钮,在Android Toolb中创建一个按钮

带有按钮教程的工具栏1 - 在menu_main.xml中添加库兼容性dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile 'com.android.support:appcompat-v7:21.0.3'}2 - 创建文件名menu_main.xml以定义/res/menu/颜色#FF5722#E64A1...

weixin_33626238的博客 223

创建一个圆形的按钮(JAVA)

[cPAMIE] pywintypes.com_error问题 Version Date Creator

JOIN 1388

java圆形_java 圆形按钮类

[java]代码库import java.awt.Color;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Shape;import java.awt.geom.Ellipse2D;import javax.swing.JButton;import java...

weixin_39924573的博客 709

一个圆形按钮,并且调整大小-flutter

Widget btnCircle(){ return SizedBox( height: 50, width: 50, child:RaisedButton( child: Text('圆形按钮' ), onPressed: () { print('我很圆'); Text('我很圆'); }, shape: CircleBorder(), )); .

jonathan_joestar的博客 1438

Android 实现圆形按钮

Android 实现圆形按钮 前言 在Android studio中,我们可以通过设置Button的radius属性来修改按钮的圆角,但是美观程度因人而异,所以我们今天使用ImageButton按钮来实现圆形按钮。 代码实现效果图: 代码实现 layout的.xml代码如下: <ImageButton android:id="@+id/btn_login" android:layout_width="90dp" android:layout_height="90dp"

Punchline_c的博客 1万+

Java制作圆形按钮

制作圆形Swing按钮(中文版)     作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站        这是一个关于制作圆形Swing按钮的技巧。事实上,这个技巧中的知识方便的适用于任何形状的按钮,但我们只作一个圆形的按钮。当你制作一个圆形的按钮时,需要做两件事。第一件事是重载一个适当的绘画方法以画出一个圆形。第二件事

Chen SenQuan的专栏 5959

designer实现圆角 qt_将矩形Qt按钮更改为圆形

I'm trying to create a round button in Qt. A simple form with a single button QPushButton was created in designer. I'm attempting to turn this into a round button using setMask(). As soon as setMas...

weixin_39680609的博客 1075

java 画圆形按钮

java 圆形按钮类 packageC10.src.book.graphic; importjava.awt.Color; importjava.awt.Dimension; importjava.awt.FlowLayout; importjava.awt.Graphics; importjava.awt.Shape; imp...

weixin_33995481的博客 569
上一篇: J2SE1.4的结构?
下一篇: J2SE1.3的结构?
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值