青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::



package ui;


import java.awt.AlphaComposite;

import java.awt.Color;

import java.awt.Cursor;

import java.awt.Font;

import java.awt.FontMetrics;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.RenderingHints;

import java.awt.Toolkit;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;


import javax.swing.JPanel;


public class BusyPanel extends JPanel implements Runnable {

private static final long serialVersionUID = 1L;

private static final float PI = 3.1415f;

private String info;

private boolean stopped = true;

private int step;

private int radius;

private int barWidth;

private int barHeight;

private Color defaultColor;

private int startIndex = 0;

private int delay = 300;

private int darkBarCount = 5;

private int fontSize = 40;

private float alpha = 0.2f;


public BusyPanel() {

setOpaque(false);

setStep(15);

setRadius(150);

setDefaultColor(new Color(100, 100, 100));

setBarWidth((int) (radius * 0.6));

setBarHeight(10);

setDefaultColor(new Color(50, 50, 50));

info = "Default Information";

setFocusable(true);

handleEvent();

}


public void run() {

try {

while (!stopped) {

repaint();

Thread.sleep(delay);

}

} catch (Exception e) {

e.printStackTrace();

}

}


public void start() {

if (!stopped) {

return;

}


stopped = false;


Thread thread = new Thread(this);

thread.start();

setCursor(new Cursor(Cursor.WAIT_CURSOR));

}


public void stop() {

stopped = true;

setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}


/**

* Set the string that will be shown in the panel.

* 

* @param str

*            is will be shown.

*/

public void setString(String str) {

info = str;

}


public String getString() {

return info;

}


public void setStep(int step) {

if (step == this.step) {

return;

}

if (step < 4) {

step = 4;

}


this.step = step;

}


public int getStep() {

return step;

}


public int getRadius() {

return radius;

}


public int getBarWidth() {

return barWidth;

}


public void setBarWidth(int barWidth) {

if (barWidth == this.barWidth) {

return;

}


if (barWidth > this.radius) {

barWidth = this.radius;

}


this.barWidth = barWidth;

}


public int getBarHeight() {

return barHeight;

}


public void setBarHeight(int barHeight) {

if (barHeight == this.barHeight) {

return;

}

if (barHeight > 20) {

barHeight = 20;

}

this.barHeight = barHeight;

}


public void setRadius(int radius) {

if (radius == this.radius) {

return;

}

if (radius < 10) {

radius = 10;

}


this.radius = radius;

}


public int getDelay() {

return delay;

}


public void setDelay(int delay) {

if (delay == this.delay) {

return;

}


if (delay < 100) {

delay = 100;

}


this.delay = delay;

}


public int getDarkBarCount() {

return darkBarCount;

}


public void setDarkBarCount(int darkBarCount) {

if (darkBarCount == this.darkBarCount) {

return;

}


if (darkBarCount < 3) {

darkBarCount = 3;

}


this.darkBarCount = darkBarCount;

}


public void setDefaultColor(Color color) {

if (color.equals(this.defaultColor)) {

return;

}

this.defaultColor = color;

}


public int getFontSize() {

return fontSize;

}


public void setFontSize(int fontSize) {

if (fontSize == this.fontSize) {

return;

}


if (fontSize < 8) {

fontSize = 8;

}

this.fontSize = fontSize;

}


public float getAlpha() {

return alpha;

}


public void setAlpha(float alpha) {

if (alpha < 0.0f) {

alpha = 0.0f;

}


if (alpha > 1.0f) {

alpha = 1.0f;

}


this.alpha = alpha;

}

private void handleEvent() {

addMouseListener(new MouseAdapter() {

@Override

public void mousePressed(MouseEvent e) {

Toolkit.getDefaultToolkit().beep();

}

});

}

@Override

public void setVisible(boolean v) {

if (v) {

requestFocus();

}

super.setVisible(v);

}


@Override

protected void paintComponent(Graphics g) {

Graphics2D g2d = (Graphics2D) g;

int width = getWidth();

int height = getHeight();

int centerx = width / 2;

int centery = height / 2;

// Draw the information string.

Font font = new Font(g2d.getFont().getName(), g2d.getFont().getStyle(),

fontSize);

g2d.setFont(font);

FontMetrics metrics = g2d.getFontMetrics();

int stringWidth = metrics.stringWidth(info);

int fontx = (width - stringWidth) / 2;

int fonty =(height / 2 - radius) - 20;

g2d.setColor(Color.RED);

g2d.drawString(info, fontx, fonty);


// Fill the semi-transparent background.

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);

g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,

alpha));

g2d.setColor(g2d.getBackground().darker().darker().darker());

g2d.fillRect(0, 0, width, height);


// Draw scrolling bars.

g2d.translate(centerx, centery);


int startx = radius - barWidth;

int starty = -(barHeight / 2);

int arcWidth = barHeight;

float deltaAngle = PI * 2 / (float) step;

startIndex = (startIndex + 1) % step;


g2d.setColor(defaultColor);

for (int i = 0; i < step; ++i) {

g2d.fillRoundRect(startx, starty, barWidth, barHeight, arcWidth,

arcWidth);

g2d.rotate(deltaAngle);

}


Color color = defaultColor;

g2d.rotate(startIndex * deltaAngle);

for (int i = 0; i < darkBarCount; ++i) {

g2d.setColor(color);

g2d.fillRoundRect(startx, starty, barWidth, barHeight, arcWidth,

arcWidth);

g2d.rotate(deltaAngle);


color = color.darker();

}


}

}


=======================================================================

package ui;


import javax.swing.JFrame;


public class MainFrame extends JFrame {

private static final long serialVersionUID = 1L;

BusyPanel glassPanel = new BusyPanel();

MainPanel panel = new MainPanel();

public MainFrame() {

getRootPane().setContentPane(panel);

setGlassPane(glassPanel);

glassPanel.start();

glassPanel.setVisible(false);

}

public void setBusy(boolean busy) {

if (busy) {

glassPanel.stop();

glassPanel.start();

glassPanel.setVisible(true);

} else {

glassPanel.stop();

glassPanel.setVisible(false);

}

}

}



posted on 2009-05-26 16:41 逛奔的蝸牛 閱讀(2343) 評論(1)  編輯 收藏 引用 所屬分類: Java

評論

# re: Java: 半透明的正忙的Panel 2009-05-31 13:41 暗金裝備
public void run() {
try {
Thread.sleep(100);
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
while (!stopped) {
setVisible(true);
repaint();
Thread.sleep(delay);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
setVisible(false);
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久激情视频久久| 亚洲婷婷在线| 国产精品久久久久久av下载红粉| 久久国产66| 欧美在线啊v| 欧美在线影院| 久久xxxx精品视频| 欧美一区二区三区男人的天堂| 欧美电影免费观看高清完整版| 久久久久久9| 欧美激情偷拍| 国产精品网红福利| 国产一区二区三区在线观看免费| 国内久久视频| 亚洲另类春色国产| 亚洲欧美视频在线观看视频| 久久国产高清| 亚洲高清视频一区| 亚洲电影在线观看| 一区二区三区日韩精品| 亚洲欧美日本视频在线观看| 久久精品道一区二区三区| 国产精品激情偷乱一区二区∴| 免费观看日韩| 欧美成人福利视频| 欧美视频精品一区| 国产视频在线观看一区| 亚洲高清视频中文字幕| 亚洲性视频网站| 久久天天躁狠狠躁夜夜爽蜜月| 欧美国产精品劲爆| 亚洲欧美日韩精品久久奇米色影视| 久久久久国产精品www| 欧美日韩精品福利| 在线精品视频在线观看高清| 一区二区精品国产| 久久最新视频| 亚洲一区三区电影在线观看| 浪潮色综合久久天堂| 亚洲欧美成人一区二区三区| 欧美一级夜夜爽| 亚洲国内自拍| 午夜一级在线看亚洲| 欧美黄色精品| 一区视频在线看| 欧美一区2区视频在线观看| 亚洲高清一区二| 久久精品人人做人人爽| 国产精品夜色7777狼人 | 亚洲欧美制服另类日韩| 欧美精品免费播放| 亚洲国产第一| 老司机午夜精品视频在线观看| 亚洲一区观看| 国产精品永久免费观看| 午夜免费日韩视频| 蜜乳av另类精品一区二区| 中文亚洲字幕| 欧美成人免费一级人片100| 国产一区二区三区在线观看免费视频| av成人黄色| 亚洲七七久久综合桃花剧情介绍| 欧美在线观看日本一区| 国产亚洲视频在线| 久久久免费av| 久久中文字幕一区二区三区| 国内成人在线| 欧美91福利在线观看| 久久久久久亚洲精品中文字幕| 国产日韩一区二区三区| 欧美在线在线| 久久久不卡网国产精品一区| 在线欧美电影| 国产欧美一级| 欧美特黄一级| 久久爱www久久做| 欧美午夜精品久久久久免费视| 欲色影视综合吧| 欧美成人一区二免费视频软件| 久久久久**毛片大全| 亚洲高清色综合| 亚洲高清视频一区二区| 欧美精品亚洲二区| 亚洲欧美国产制服动漫| 亚洲女人小视频在线观看| 国产一级揄自揄精品视频| 久久人体大胆视频| 欧美搞黄网站| 欧美在线啊v一区| 葵司免费一区二区三区四区五区| 日韩视频免费观看高清完整版| 在线视频欧美一区| 尤物精品国产第一福利三区| 亚洲精品免费观看| 国产日韩欧美中文在线播放| 欧美福利小视频| 国产精品hd| 猛干欧美女孩| 国产精品伦一区| 模特精品裸拍一区| 国产精品成人av性教育| 麻豆成人综合网| 国产精品黄色在线观看| 久久综合伊人77777麻豆| 欧美涩涩网站| 欧美激情一区二区三区四区| 国产精品尤物福利片在线观看| 欧美电影免费观看| 国产亚洲一级高清| 日韩午夜在线播放| 亚洲国产精品一区二区www在线| 在线亚洲高清视频| 亚洲欧洲在线看| 欧美资源在线观看| 亚洲欧美国产精品专区久久| 欧美激情精品久久久久久蜜臀| 久久久www成人免费毛片麻豆| 欧美日韩国产成人在线| 欧美成年人网站| 国产亚洲欧美日韩一区二区| 亚洲免费大片| 亚洲国产精品国自产拍av秋霞| 亚洲欧美成aⅴ人在线观看| 一本色道久久综合亚洲精品不 | 亚洲免费成人av电影| 亚洲第一二三四五区| 亚洲欧美视频一区二区三区| 一区二区三区精品在线| 欧美成人激情视频免费观看| 久久一区二区视频| 国内精品久久久久久| 亚洲欧美变态国产另类| 欧美一区=区| 国产欧美精品xxxx另类| 亚洲欧洲三级电影| 欧美一级大片在线免费观看| 国产夜色精品一区二区av| 亚洲视频电影图片偷拍一区| 亚洲精品美女91| 免费亚洲一区| 亚洲大胆人体在线| 亚洲日本激情| 欧美精品在线一区| 最新日韩中文字幕| 在线亚洲激情| 国产精品久久久久久模特| 亚洲深夜福利| 久久gogo国模裸体人体| 国产一区二区三区四区五区美女| 亚洲欧美成人精品| 久久久在线视频| 亚洲大片精品永久免费| 蜜臀av国产精品久久久久| 欧美国产精品一区| 亚洲区在线播放| 欧美日韩精品一二三区| 亚洲视频免费在线| 久久久久久伊人| 亚洲国产精品成人综合色在线婷婷| 欧美国产日韩一二三区| 一区二区三区精品久久久| 久久国产精品色婷婷| 伊人狠狠色j香婷婷综合| 欧美插天视频在线播放| 中日韩在线视频| 欧美中文字幕在线| 永久555www成人免费| 欧美另类人妖| 午夜日韩av| 欧美激情一区二区三区全黄 | 国产美女高潮久久白浆| 久久精品国产99国产精品澳门| 欧美激情中文字幕一区二区| 亚洲午夜国产一区99re久久| 国产精品网红福利| 欧美成人69av| 午夜日韩在线观看| 亚洲经典在线看| 久久国产精品网站| av成人天堂| 一区在线视频| 国产精品久久| 欧美大片免费| 欧美中在线观看| 99精品欧美一区二区三区综合在线| 久久精品91久久香蕉加勒比| 亚洲美女精品久久| 一区在线观看视频| 国产亚洲激情视频在线| 欧美日韩国产麻豆| 美国十次成人| 久久精品成人一区二区三区蜜臀 | 欧美一区二区三区久久精品| 亚洲精品国产精品国自产观看| 国产亚洲日本欧美韩国| 欧美特黄视频| 欧美日本在线| 蜜桃av一区二区在线观看| 久久riav二区三区| 性欧美大战久久久久久久免费观看|