中琅软件教程网

首页搜索登录
首页业界网页平面多媒体程序数据库办公工具服务器系统网络安全站长认证壁纸
加入收藏 | 网站地图 | | RSS | WAP
你好,游客 登录 注册 搜索

java自定义圆形、椭圆按钮示例

[日期:2013-12-11] 作者: 来源: [字体: ]

5.5 按钮测试

5.51源程序

5.5.1.1 RoundButtonDemo.Java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

 

public class RoundButtonDemo extends JFrame {

 

    private int clickCount = 0; // 记录安钮的点击次数

    private JButton button1;

    private JButton button2;

 

    public RoundButtonDemo() {

      button1 = new RoundButton("这是一个圆形按钮"); // 初始化按钮一

      Dimension dim = button1.getPreferredSize(); // 得到按钮一的最佳尺寸

      double maxsize = Math.max(dim.getHeight(), dim.getWidth()); // 得到长宽中的最大值

      dim.setSize(maxsize, maxsize); // 更改长宽为长宽中的最大值

      button1.setPreferredSize(dim); // 设置最佳尺寸

      button2 = new RoundButton("点击了: " + clickCount + " 次"); // 初始化按钮二

      button1.setBackground(Color.blue); // 设置按钮的背景颜色

      button2.setBackground(Color.pink);

      getContentPane().add(button1); // 增加组件

      getContentPane().add(button2);

      getContentPane().setLayout(new FlowLayout()); // 设置布局管理器

      button2.addActionListener(new ActionListener() { // 铵钮二的事件处理

                  public void actionPerformed(ActionEvent e) {

                    clickCount++; // 增加一次点击数

                    button2.setText("点击了: " + clickCount + " 次"); // 重新设置按钮二的标签

                  }

              });

 

      setSize(300, 200); // 设置窗口尺寸

      setVisible(true); // 设置窗口可视

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序

    }

 

    public static void main(String[] args) {

      new RoundButtonDemo();

    }

}

5.5.1.2 RoundButton.java

import java.awt.*;

import javax.swing.*;

 

public class RoundButton extends JButton {

 

    public RoundButton(String label) {

      super(label); // 调用父类构造函数

      setContentAreaFilled(false); // 不自行绘制按钮背景

    }

 

    // 绘制圆和标签

    protected void paintComponent(Graphics g) {

      if (getModel().isArmed()) { // 鼠标点击时

          g.setColor(Color.lightGray); // 颜色为灰色

      } else {

          g.setColor(getBackground()); // 置按钮颜色

      }

      g.fillOval(0, 0, getSize().width, getSize().height); // 绘制圆

      super.paintComponent(g); // 调用父类函数,绘制其余部分

    }

 

    // 绘制边框

    protected void paintBorder(Graphics g) {

      g.setColor(getForeground()); // 设置边框颜色

      g.drawOval(0, 0, getSize().width - 1, getSize().height - 1); // 在边界上绘制一个椭圆

    }

}

5.5.1.3    源程序的运行结果:

 

5.5.2        源程序揭秘

5.5.2.1 源程序介绍

    这个程序介绍了怎样绘制圆形和椭圆按钮。但用户点击右边的按钮时,按钮会改变颜色,点击左边的按钮时,按钮会改变颜色并且记录点击的次数。通过这个例子,读者可以学习到怎样设计自己的按钮。

5.5.2.2 源程序变量解析:

    clickCount: 记录按钮的点击次数。

    button1: 按钮1。

    button2: 按钮2。

    dim: 按钮1的最佳尺寸

    maxsize: 得到按钮长宽中的最大值。

5.5.2.3 源程序函数解析:

    RoundButtonDemo(): 实例化变量,创建窗口,布局窗口。

    RoundButton(String label): 不自行绘制按钮背景。

    paintComponent(Graphics g): 绘制圆和标签。

    paintBorder(Graphics g): 绘制边框。

5.5.2.4 程序段解析:

    if (getModel().isArmed()) { // 鼠标点击时

          g.setColor(Color.lightGray); // 颜色为灰色

      } else {

          g.setColor(getBackground()); // 置按钮颜色

    }

    这段代码设置点击按钮时颜色为灰色,鼠标松开时,重置颜色。

    Dimension dim = button1.getPreferredSize(); // 得到按钮一的最佳尺寸

    double maxsize = Math.max(dim.getHeight(), dim.getWidth()); // 得到长宽中的最大值

    dim.setSize(maxsize, maxsize); // 更改长宽为长宽中的最大值

    button1.setPreferredSize(dim);//设置最佳尺寸。 

    这段代码先得到按钮一长宽中的最大值,然后给其设置最佳尺寸。

关键词:按钮  自定义  圆形  椭圆 

收藏 推荐 打印 | 录入:blue1000 | 阅读:
最新图文
本文评论   查看全部评论 (1)
表情: 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事/刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
第 1 楼
* 匿名 发表于 2016/12/24 19:34:50
http://www.blue1000.com/bkhtml/c118/2012-02/70756.htm 吃西瓜350的作文 http://www.135995.com/details/zs1523.html 两只小花狗作文 http://www.135995.com/details/zs1524.html