首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • java中如何实现圆角按钮 ?
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 12:54:33 楼主
    java中如何实现圆角按钮 ?
    如QQ登录时的查杀木马,和设置按钮,和圆角是怎么样实现的?用哪个属性??谢谢!!
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 13:23:021楼 得分:0
    推荐楼主看Swing Hacks这本书, 里面这种自定义组件非常的多, 写得很好.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 13:52:482楼 得分:0
    到网上找了个不知道lz是不是这个意思
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Shape;
    import java.awt.geom.RoundRectangle2D;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    public class MyButton extends JButton  {
    private Shape shape = null;
    private Color quit = new Color(0, 0, 228);// 离开时颜色
    public MyButton(String s) {
      super(s);
      //addMouseListener(this);
      setContentAreaFilled(false);// 是否显示外围矩形区域 选否
    }
    public void paintComponent(Graphics g) {
      g.setColor(quit);
      //填充圆角矩形区域 也可以为其它的图形
      g.fillRoundRect(0, 0, getSize().width - 1, getSize().height - 1,
          20, 20);
      //必须放在最后 否则画不出来
      super.paintComponent(g);
    }
    public void paintBorder(Graphics g) {
      //画边界区域
      g.drawRoundRect(0, 0, getSize().width - 1, getSize().height - 1,
          20, 20);
    }
    public static void main(String[] argv) {
      JFrame f = new JFrame();
      f.setSize(400, 300);
      MyButton btn = new MyButton("button");
      f.setLayout(null);
      btn.setBounds(100, 100, 80, 30);
      f.getContentPane().add(btn, BorderLayout.NORTH);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setVisible(true);
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 15:32:023楼 得分:0
    想重点指出的是:
            setContentAreaFilled(false);// 是否显示外围矩形区域 选否
    这一句代码非常重要, 如果不设置或者设置为true(默认就是true), 那么, 系统会调用JButton来绘制按钮的外观, 即你在paintComponent(..)这个方法中的绘制不会起作用.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-25 15:54:084楼 得分:0
    学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-26 16:18:265楼 得分:0
    改环境L&F调整成圆的不就行了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-28 09:29:546楼 得分:0
    楼上的调整 l&f 可以达到目标?怎么样具体操作?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-29 14:56:487楼 得分:0
    修改L&F和重写JButton都是一样的写法. 不过上面的代码中还需要重写contains方法, 不然虽然按钮看上去是圆的, 鼠标点击的时候仍然可以点击到圆以外的地方, 因为组件默认是矩形的.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 17:00:188楼 得分:0
    都是高手阿
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wjh0205
    • 等级:
    发表于:2008-05-22 17:05:239楼 得分:0
    我也要学
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • GPSsky
    • 等级:
    发表于:2008-05-23 09:27:3510楼 得分:0
    GUI美化 书里写了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-04 15:04:4911楼 得分:0
    这个好像不是按钮,
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-04 15:31:2912楼 得分:0
    找一现成的 L&F 即感官。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-28 21:00:2513楼 得分:0
      QQ群: 2033279  java技术联盟
      QQ群:46529613 PHP技术联盟
    企业平台网基金会主办!
    www.2008pq.com
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xlbc
    • 等级:
    发表于:2008-07-29 10:19:2814楼 得分:0
    学习了。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-29 10:19:3115楼 得分:0
    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【haoyanbinok】截止到2008-07-29 10:19:30的历史汇总数据(不包括此帖):
    发帖的总数量:24                      发帖的总分数:460                      每贴平均分数:19                     
    回帖的总数量:6                        得分贴总数量:1                        回帖的得分率:16%                     
    结贴的总数量:13                      结贴的总分数:160                     
    无满意结贴数:3                        无满意结贴分:60                     
    未结的帖子数:11                      未结的总分数:300                     
    结贴的百分比:54.17 %              结分的百分比:34.78 %                 
    无满意结贴率:23.08 %              无满意结分率:37.50 %                 
    楼主加油
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-31 20:56:4216楼 得分:0
    我建议采用L&F设置,网上很多开源扩展包,例如substance.jar包。可以再www.open-open.com上面查找
    不过,如果需要自己定义按钮的外观,除了楼上的高手解决的方法外,如果想避免鼠标点击按钮的时候出现
    圆形以外的矩形方框,可以采用下面的方法来取消:
    jb1.setUI(new BasicButtonUI());
    jb1.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    //PS:jb1为JButton对象

    以上仅为参考,希望大家互相探讨!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-07-31 23:04:0017楼 得分:0
    在按钮上放图片
    或者自己绘制个圆按钮
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-04 13:28:4818楼 得分:0
    网上
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Shape;
    import java.awt.geom.RoundRectangle2D;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    public class MyButton extends JButton  {
    private Shape shape = null;
    private Color quit = new Color(0, 0, 228);// 离开时颜色
    public MyButton(String s) {
      super(s);
      //addMouseListener(this);
      setContentAreaFilled(false);// 是否显示外围矩形区域 选否
    }
    public void paintComponent(Graphics g) {
      g.setColor(quit);
      //填充圆角矩形区域 也可以为其它的图形
      g.fillRoundRect(0, 0, getSize().width - 1, getSize().height - 1,
          20, 20);
      //必须放在最后 否则画不出来
      super.paintComponent(g);
    }
    public void paintBorder(Graphics g) {
      //画边界区域
      g.drawRoundRect(0, 0, getSize().width - 1, getSize().height - 1,
          20, 20);
    }
    public static void main(String[] argv) {
      JFrame f = new JFrame();
      f.setSize(400, 300);
      MyButton btn = new MyButton("button");
      f.setLayout(null);
      btn.setBounds(100, 100, 80, 30);
      f.getContentPane().add(btn, BorderLayout.NORTH);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setVisible(true);
    }
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-05 14:22:2319楼 得分:0
    学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-07 12:57:2120楼 得分:0
    JLabel、JLabel、JLabel、JLabel、JLabel…………加上图片,用鼠标事件响应…………为什么没人用呢?很简单又很实用的解决方法……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-07 12:59:0721楼 得分:0
    按钮的关键不在于你是不是用的按钮组件,而在于那个图片看起来像不像按钮,就是这样,爆郁闷
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-07 18:51:5122楼 得分:0
    L&F不会用啊,布局的layout也不会

    在java API上看见的很多,如:getUI() :  返回呈现此组件的 L&F 对象

    啥意思?不会~~~
             
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-19 12:07:5223楼 得分:0
    在网上找一个substance.jar这个java的三方包.如果不会用就发消息给我.只要加上这个包.按钮就变圆了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-19 14:34:4524楼 得分:0
    学习中!!。。。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved