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

逛奔的蝸牛

我不聰明,但我會很努力

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



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>
            国产精品一区二区男女羞羞无遮挡 | 欧美日韩国产综合在线| 香蕉视频成人在线观看| 亚洲特色特黄| 香蕉成人久久| 老鸭窝毛片一区二区三区| 麻豆9191精品国产| 欧美激情视频在线播放| 欧美午夜精品久久久久久人妖| 国产精品久久久久一区| 国产精品综合久久久| 国产亚洲欧洲| 亚洲精品1234| 亚洲欧美国产视频| 久久久久九九视频| 欧美国产日韩一区二区三区| 亚洲激情偷拍| 亚洲一区免费视频| 久久一本综合频道| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 免费观看日韩| 亚洲国产精品欧美一二99| 9l视频自拍蝌蚪9l视频成人| 午夜久久久久久| 久热精品视频在线免费观看| 国产精品白丝黑袜喷水久久久| 亚洲高清在线观看| 99re6热在线精品视频播放速度| 91久久线看在观草草青青| 亚洲精品在线一区二区| 欧美一级久久久| 欧美激情影音先锋| 国产综合精品| 亚洲午夜精品视频| 久久综合色婷婷| 亚洲理论电影网| 久久婷婷久久| 国产欧美视频一区二区| 亚洲高清视频在线观看| 先锋资源久久| 亚洲人成艺术| 老巨人导航500精品| 欧美日韩天天操| 亚洲欧洲三级| 欧美a级一区二区| 亚洲欧美美女| 国产精品美女久久久久aⅴ国产馆| 国产一区欧美| 一区二区三区国产在线观看| 久久都是精品| 亚洲一区二区三区四区视频| 欧美区高清在线| 亚洲国产成人久久综合| 久久久国产精品亚洲一区| 在线午夜精品| 欧美日韩在线视频首页| 亚洲精品乱码| 欧美激情一区二区三级高清视频 | 亚洲精选在线观看| 欧美va亚洲va香蕉在线| 在线成人激情| 久久久久久久综合日本| 亚洲免费在线播放| 国产精品99免费看 | 欧美精品在线观看91| 尤物九九久久国产精品的特点| 欧美诱惑福利视频| 午夜电影亚洲| 国产精品亚发布| 欧美专区一区二区三区| 小处雏高清一区二区三区| 国产欧美精品xxxx另类| 欧美在线91| 久久久久国色av免费观看性色| 国产日韩在线看| 国产一区二区三区日韩| 久久aⅴ乱码一区二区三区| 亚洲一区欧美激情| 国产一区二区三区在线观看视频 | 欧美日韩亚洲一区二区三区在线观看 | 亚洲激情在线观看| 亚洲第一网站| 欧美揉bbbbb揉bbbbb| 校园春色国产精品| 久久久久国产精品麻豆ai换脸| 精品成人在线视频| 亚洲国产成人一区| 欧美理论电影在线播放| 性久久久久久久久久久久| 午夜在线电影亚洲一区| 一区二区在线看| 亚洲美女诱惑| 狠狠色丁香婷婷综合久久片| 亚洲国产毛片完整版| 国产精品免费看久久久香蕉| 另类成人小视频在线| 欧美日本久久| 欧美自拍丝袜亚洲| 久久一区中文字幕| 日韩视频专区| 先锋影音一区二区三区| 亚洲美女免费精品视频在线观看| 亚洲天堂成人在线观看| 国内精品99| 亚洲美女精品久久| 国产自产2019最新不卡| 亚洲国产另类 国产精品国产免费| 国产精品久久久99| 欧美成人亚洲成人| 国产精品视频精品视频| 久久久免费av| 欧美日韩一视频区二区| 久久精品在这里| 欧美高清视频一区二区| 久久久亚洲高清| 欧美午夜精品久久久| 欧美激情国产精品| 国产曰批免费观看久久久| 一本色道久久综合亚洲精品小说 | 99精品国产99久久久久久福利| 国产色视频一区| 99re热精品| 99re6热在线精品视频播放速度| 久久国产精品一区二区三区| 国产欧美日韩精品一区| 欧美成人一区二区三区在线观看| 欧美精品一二三| 免费在线一区二区| 国产区欧美区日韩区| 国产精品99久久久久久人| 国产一在线精品一区在线观看| 亚洲视频久久| 中文精品视频| 欧美欧美在线| 亚洲第一成人在线| 91久久在线播放| 久久亚洲私人国产精品va| 久热re这里精品视频在线6| 欧美日韩黄色一区二区| 亚洲国产精品va在线看黑人动漫 | 久久福利影视| 国产女同一区二区| 欧美一级视频免费在线观看| 久久国产精品久久久久久| 国产网站欧美日韩免费精品在线观看| 亚洲在线观看视频| 久久久久久久综合色一本| 一区二区在线看| 久久综合九色综合欧美就去吻| 免费久久精品视频| 亚洲啪啪91| 欧美另类高清视频在线| 夜久久久久久| 久久国产精品久久精品国产| 国产一区二区视频在线观看| 久久国产精品久久久久久久久久| 美女脱光内衣内裤视频久久网站| 亚洲电影免费在线观看| 老司机午夜精品| 91久久久在线| 亚洲与欧洲av电影| 国产日韩在线一区| 免费久久99精品国产| av成人激情| 久久免费黄色| 亚洲精品日韩一| 国产精品美女999| 久久久免费精品视频| 亚洲乱码视频| 久久久久看片| 亚洲老板91色精品久久| 国产精品久久97| 久久综合色天天久久综合图片| 日韩午夜精品视频| 久久伊人亚洲| 亚洲网站在线| 在线观看91久久久久久| 欧美激情综合在线| 亚洲女性裸体视频| 亚洲国产精品综合| 久久国产加勒比精品无码| 亚洲黄色成人久久久| 国产精品日韩欧美综合| 美女精品在线观看| 午夜精品视频| 亚洲国产精品热久久| 久久精品国产亚洲精品| 亚洲精品久久久久久久久久久久久| 欧美视频中文一区二区三区在线观看| 欧美一区二区日韩| 亚洲欧洲精品一区二区| 久久国产婷婷国产香蕉| 国产精品99久久久久久久vr| 韩国在线视频一区| 欧美性jizz18性欧美| 91久久精品一区二区三区| 久久国产精品一区二区| 亚洲视频精品| 亚洲人成网站影音先锋播放| 国内精品美女av在线播放|