亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

實現類似XP風格的快速按鈕

2019-11-18 13:23:49
字體:
來源:轉載
供稿:網友


  實現功能: 類似于Windows xp中的快速按鈕的風格, 答應指定按鈕的狀態是自彈起(就是鼠標鍵按下時按鈕產生被按下的效果, 鼠標鍵抬起的時候按鈕自動回復原狀)著是開關按鈕(點擊一次, 按鈕被按下, 再點擊一次, 按鈕被彈起), 并能夠設定一組(多個)或多組互斥按鈕(即同組中有且只有一個按鈕一直處于被按下的狀態). 當然, 這個類不是很完善, 有許多地方可以改進, 比如沒有加入當按鈕處于禁止使用的狀態(Disabled), 應該再引入一個Image來顯示成灰色的效果等. 您就自己改改吧. :)
  程序代碼:
  SpeedButton.java
  --------------------------------
  import javax.swing.*;
  import java.awt.*;
  import java.awt.event.*;
  
  public class SpeedButton extends JButton implements MouseListener {
  PRivate boolean entered = false; /* 標志, 用于判定鼠標是否在按鈕上 */
  private boolean downed = false; /* 標志, 用于按鈕是否被按下 */
  
  private boolean enabledDowned = false; /* 標志, 用于按鈕是否答應被按下 */
  
  private Image image = null;
  private int groupID = 0; /* 指定按鈕屬于哪個互斥組, 取值為0時不判定 */
  
  private int buttonID; /* 按鈕本身的ID號, 唯一 */
  
  /**
  * 這個構造器有點煩, 這里可以進行優化成多個構造器來組合.
  * @see com.javax.swing.JButton
  * @author delfan,2002.07.23
  * @version 1.0
  */
  public SpeedButton(int buttonID, Image image, int width, int height, String tip, boolean enabledDowned,boolean initmode, int groupID, ActionListener actionListener) {
  this.buttonID = buttonID;
  this.image = image;
  addMouseListener(this);
  setPreferredSize(new Dimension(width, height));
  setToolTipText(tip);
  this.enabledDowned = enabledDowned;
  this.groupID = groupID;
  downed = initmode;
  addActionListener(actionListener);
  }
  
  public void paint(Graphics g) {
  if (getSize().height == 2 getSize().width == 2) { // 畫分隔條, 當按鈕寬度或高度為2的時候,
  g.setColor(new Color(119, 133, 168)); // 認為是分隔條
  g.fillRect(0, 0, getWidth() - 1, getHeight() - 1);
  g.setColor(new Color(129, 143, 178));
  g.fillRect(1, 1, getWidth(), getHeight());
  setEnabled(false);
  }
  else
  {
  if (entered) { // 鼠標在按鈕內
  g.setColor(new Color(119, 133, 168));
  g.fillRect(0, 0, getWidth(), getHeight());
  g.setColor(new Color(8, 36, 107));
  g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
  if (image != null) g.drawImage(image, 2, 2, getParent());
  } else { // 鼠標不在按鈕內
  g.setColor(getParent().getBackground());
  g.fillRect(0, 0, getWidth(), getHeight());
  if (image != null) g.drawImage(image, 2, 2, getParent());
  }
  
  if (downed) { // 按鈕被按下
  g.setColor(new Color(181, 190, 214));
  g.fillRect(0, 0, getWidth(), getHeight());
  g.setColor(new Color(8, 36, 107));
  g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
  if (image != null) g.drawImage(image, 3, 3, getParent());
  }
  }
  }
  
  public void update(Graphics g) {paint(g);}
  
  /**
  * 按鈕是否處于按下狀態
  */
  public boolean isDowned() {return downed;}
  
  /**
  * 取得按鈕的組索引號
  */
  public int getGroupID() {return groupID;}
  
  public void setDowned(boolean downed) {this.downed = downed;repaint();}
  
  public void mouseEntered(MouseEvent e) {entered = true;repaint();}
  
  public void mouseExited(MouseEvent e) {entered = false;repaint();}
  
  public void mouseClicked(MouseEvent e) {}
  
  public void mousePressed(MouseEvent e) {
  if (enabledDowned && downed && groupID == 0)
  downed = false;
  else
  downed = true;
  repaint();
  }
  
  public void mouseReleased(MouseEvent e) {
  if (!enabledDowned) downed = false;
  repaint();
  if (groupID != 0) // 通過存放按鈕的容器進行互斥按鈕的狀態改變操作
  for (int i = 0; i < getParent().getComponentCount(); i++)
  if (getParent().getComponent(i) instanceof SpeedButton) {
  if (((SpeedButton) getParent().getComponent(i)).getGroupID() == groupID
  && ((SpeedButton) getParent().getComponent(i)) != this)
  ((SpeedButton) getParent().getComponent(i)).setDowned(false);
  }
  }
  
  public int getButtonID() {return buttonID;}
  
  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
波霸ol色综合久久| 色悠悠久久久久| 久久久久久综合网天天| 欧美激情一级欧美精品| 国产久一一精品| 中文字幕精品视频| 亚洲专区在线视频| 欧美一区二区三区免费视| 国产精品久久久久91| 欧美成人亚洲成人| 国产一区二区精品丝袜| 在线观看欧美成人| 免费97视频在线精品国自产拍| 日韩精品免费电影| 欧美日韩国产黄| 国产欧美日韩专区发布| 国产成人精品电影久久久| 一个人看的www久久| 91久久中文字幕| 黄色一区二区在线观看| 国产精品一区二区av影院萌芽| 欧美精品福利视频| 日韩一区二区欧美| 在线观看日韩专区| 精品久久久国产精品999| 欧美xxxx做受欧美| 午夜精品久久久久久久久久久久| 久久精品99久久久香蕉| 亚洲欧洲自拍偷拍| 欧美色播在线播放| 日韩电影中文字幕| 午夜精品一区二区三区在线视频| 国产亚洲美女久久| 亚洲女人天堂成人av在线| 草民午夜欧美限制a级福利片| 成人有码在线播放| 欧美另类老女人| 青青草精品毛片| 日韩在线观看网址| 精品色蜜蜜精品视频在线观看| 亚洲国产精品悠悠久久琪琪| 91av在线免费观看视频| 欧美日韩国产中文精品字幕自在自线| 国产一区二区三区网站| 日韩av中文字幕在线播放| 久久国产精品99国产精| 国产精品入口免费视| 欧美国产日韩一区| 欧美日韩在线看| 久久久久久久久久婷婷| 国产精品三级久久久久久电影| 亚洲第一福利网| 欧亚精品中文字幕| 亲爱的老师9免费观看全集电视剧| 欧美孕妇性xx| 综合欧美国产视频二区| 啊v视频在线一区二区三区| 国产伦精品免费视频| 日本久久91av| 美女视频黄免费的亚洲男人天堂| 欧美精品情趣视频| 午夜精品久久久久久久99黑人| 奇米成人av国产一区二区三区| 久久亚洲影音av资源网| 日韩欧美主播在线| 91在线视频精品| 亚洲精品久久久久久久久| 欧美一区二区视频97| 91系列在线播放| 久久黄色av网站| 精品久久久久久久中文字幕| 国产精品美女久久久久av超清| 韩国一区二区电影| 久久偷看各类女兵18女厕嘘嘘| 最新日韩中文字幕| 成人欧美一区二区三区黑人| 日产精品久久久一区二区福利| 国产一级揄自揄精品视频| 97香蕉超级碰碰久久免费的优势| 久久亚洲私人国产精品va| 97在线精品视频| 91国产美女视频| 日韩高清电影免费观看完整版| 欧美电影免费观看电视剧大全| 97久久超碰福利国产精品…| 亚洲香蕉伊综合在人在线视看| 琪琪亚洲精品午夜在线| 国产成人鲁鲁免费视频a| 国产视频一区在线| 国内精品久久久久久| 久久久久久国产三级电影| 91香蕉亚洲精品| 日韩a**中文字幕| 亚洲人成在线电影| 精品国产拍在线观看| 日韩国产激情在线| 福利精品视频在线| 最近中文字幕mv在线一区二区三区四区| 亚洲第一综合天堂另类专| 欧美成aaa人片在线观看蜜臀| 91精品国产91久久| 97在线精品国自产拍中文| 热99精品里视频精品| 国产精品免费福利| 亚洲欧洲在线免费| 亚洲欧洲国产精品| 国产精品一区二区三区久久| 欧美成人午夜激情| 久久久久久久影视| 中国日韩欧美久久久久久久久| 亚洲天堂色网站| 51久久精品夜色国产麻豆| 国产在线精品一区免费香蕉| 精品毛片网大全| 久久精品一本久久99精品| 久久亚洲精品中文字幕冲田杏梨| 欧美高清视频一区二区| 欧美激情videos| 在线电影欧美日韩一区二区私密| 国产精品爱久久久久久久| 青青青国产精品一区二区| 欧美噜噜久久久xxx| 久久艳片www.17c.com| 国产成+人+综合+亚洲欧洲| 国产精品久久久久久久一区探花| 亚洲男人天堂网站| 91超碰caoporn97人人| 国产亚洲精品久久| 亚洲天堂av在线免费| 亚洲人成77777在线观看网| 中文字幕亚洲欧美日韩2019| 久久精品视频在线观看| 亚洲美女动态图120秒| 综合网日日天干夜夜久久| 亚洲aa中文字幕| 911国产网站尤物在线观看| 黄网动漫久久久| 日韩精品欧美激情| 尤物九九久久国产精品的分类| 日韩av片永久免费网站| 国产成人激情视频| 最新亚洲国产精品| 5566日本婷婷色中文字幕97| 日韩欧美亚洲一二三区| 欧美在线视频网站| 亚洲xxxx3d| 亚洲一区久久久| 亚洲视频一区二区| 97人人爽人人喊人人模波多| 国产成人亚洲综合91精品| 亚洲男人天堂视频| 在线观看国产欧美| 欧美性猛交xxxx偷拍洗澡| 国产成人小视频在线观看| 国产精品综合网站| 大伊人狠狠躁夜夜躁av一区| 日韩成人激情在线| 亚洲国产精品高清久久久| 精品久久久久久中文字幕| 午夜精品蜜臀一区二区三区免费| 欧美大片网站在线观看| 欧美日韩国产中字| 亚洲欧美激情在线视频| 精品国产91乱高清在线观看|