?? intro.java~2~
字號:
package java2d;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.net.URL;
import java.net.URLClassLoader;
import javax.swing.JPanel;
import javax.swing.border.*;
public class Intro extends JPanel {
static Surface surface;
static Color black = new Color(20, 20, 20);
static Color white = new Color(240, 240, 255);
static Color red = new Color(149, 43, 42);
static Color blue = new Color(94, 105, 176);
static Color yellow = new Color(255, 255, 140);
public Intro() {
EmptyBorder eb = new EmptyBorder(8, 11, 8, 11);
BevelBorder bb = new BevelBorder(BevelBorder.LOWERED);
setBorder(new CompoundBorder(eb, bb));
setLayout(new BorderLayout());
//setBackground(Color.gray);
add(surface = new Surface());
}
public void start() {
surface.start();
}
public void stop() {
surface.stop();
}
static class Surface extends JPanel implements Runnable {
static Surface surf;
float[] H = new float[7];
float[] L = new float[7];
private float MZ1, MZ2, MZ3, MZ4, MS1, MS2, MT1, MT2, MT3, MT4;
static float Z1, Z2, Z3, Z4, S1, S2, T1, T2, T3, T4;
static float al1 = (float) 7.0;
static float al2 = (float) 9.5;
static BufferedImage bimg;
public int w;
public int h;
static Thread plot;
boolean isStandalone = false;
BorderLayout borderLayout1 = new BorderLayout();
Image centerImage;
private Thread thread;
public Surface() {
surf = this;
setBackground(Color.gray);
setLayout(new BorderLayout());
//datapool=new dataPool();
plot = new Thread(this);
URLClassLoader urlLoader = (URLClassLoader)this.getClass().
getClassLoader();
URL fileLoc = urlLoader.findResource("java2d/fengji.gif");
centerImage = this.getToolkit().createImage(fileLoc);
MediaTracker mt = new MediaTracker(this);
mt.addImage(centerImage, 0);
try {
mt.waitForAll();
} catch (Exception e) {
e.printStackTrace();
}
w = centerImage.getWidth(this);
h = centerImage.getHeight(this);
System.out.println(String.valueOf(w));
System.out.println(String.valueOf(h));
}
//alarm
static int alarm(float val, float al1, float al2) {
int type = 1;
if (val >= al1 && val < al2) {
type = 3;
} else
if (val >= al2) {
type = 4;
} else
if (val < al1) {
type = 1;
} else {
type = 2;
}
return type;
}
public void drawLed(Graphics2D g, int type, int x, int y) {
switch (type) {
case 1:
g.setColor(new Color(0, 255, 0));
break;
case 2:
g.setColor(new Color(255, 255, 255));
break;
case 3:
g.setColor(new Color(251, 251, 19));
break;
case 4:
g.setColor(new Color(255, 0, 0));
break;
default:
g.setColor(new Color(0, 255, 0));
}
g.fillOval(x, y, 20, 20);
}
static void changeColor(Graphics2D g, int type) {
switch (type) {
case 1:
g.setColor(new Color(0, 255, 0));
break;
case 2:
g.setColor(new Color(255, 255, 255));
break;
case 3:
g.setColor(new Color(251, 251, 19));
break;
case 4:
g.setColor(new Color(255, 0, 0));
break;
default:
g.setColor(new Color(0, 255, 0));
}
}
public void paint(Graphics g) {
Dimension d = getSize();
if (d.width <= 0 || d.height <= 0) {
return;
}
if (bimg == null || bimg.getWidth() != d.width ||
bimg.getHeight() != d.height) {
bimg = getGraphicsConfiguration().createCompatibleImage(d.width,
d.height);
}
Graphics2D g2 = bimg.createGraphics();
int x = 0;
int y = 30;
g2.drawImage(centerImage, x, y, this);
if (Java2Demo.datapool != null) {
/* Z1=Java2Demo.datapool.getdataF("Z1","high_frequency_table");
Z2=Java2Demo.datapool.getdataF("Z2","high_frequency_table");
Z3=Java2Demo.datapool.getdataF("Z3","high_frequency_table");
Z4=Java2Demo.datapool.getdataF("Z4","high_frequency_table");
S1=Java2Demo.datapool.getdataF("S1","high_frequency_table");
S2=Java2Demo.datapool.getdataF("S2","high_frequency_table");
T1=Java2Demo.datapool.getdataF("T1","low_frequency_table");
T2=Java2Demo.datapool.getdataF("T2","low_frequency_table");
T3=Java2Demo.datapool.getdataF("T3","low_frequency_table");
T4=Java2Demo.datapool.getdataF("T4","low_frequency_table");
*/
H = Java2Demo.datapool.getdataF("high_frequency_table");
L = Java2Demo.datapool.getdataF("low_frequency_table");
}
drawLed(g2, alarm(H[0], al1, al2), x + 102, y + 73); //風機 左Y
g2.drawLine(x + 112, y + 73, x + 112, y + 43);
g2.drawLine(x + 112, y + 43, x + 82, y + 43);
g2.drawLine(x + 112, y + 43, x + 142, y + 43);
g2.drawString("" + H[0], x + 80, y + 37);
drawLed(g2, alarm(H[1], al1, al2), x + 249, y + 73); //風機 右Y
g2.drawLine(x + 259, y + 73, x + 259, y + 43);
g2.drawLine(x + 229, y + 43, x + 289, y + 43);
g2.drawString("" + H[1], x + 227, y + 37);
drawLed(g2, alarm(H[2], al1, al2), x + 92, y + 210); //風機 左X
g2.drawLine(x + 102, y + 230, x + 102, y + 250);
g2.drawLine(x + 102, y + 250, x + 82, y + 250);
g2.drawString("" + H[2], x + 25, y + 255);
drawLed(g2, alarm(H[4], al1, al2), x + 150, y + 210); //風機 左Z
g2.drawLine(x + 160, y + 230, x + 160, y + 270);
g2.drawLine(x + 160, y + 270, x + 110, y + 270);
g2.drawString("" + H[4], x + 50, y + 275);
drawLed(g2, alarm(H[3], al1, al2), x + 240, y + 210); //風機 右X
g2.drawLine(x + 250, y + 230, x + 250, y + 270);
g2.drawLine(x + 250, y + 270, x + 290, y + 270);
g2.drawString("" + H[3], x + 290, y + 275);
drawLed(g2, alarm(H[5], al1, al2), x + 297, y + 210); //風機 右Z
g2.drawLine(x + 307, y + 230, x + 307, y + 250);
g2.drawLine(x + 307, y + 250, x + 347, y + 250);
g2.drawString("" + H[5], x + 347, y + 255);
drawLed(g2, alarm(L[0], al1, al2), x + 140, y + 120); //風機 左 溫度
g2.drawLine(x + 150, y + 120, x + 150, y + 100);
g2.drawLine(x + 150, y + 100, x + 400, y + 100);
g2.drawLine(x + 400, y + 100, x + 400, y + 60);
g2.drawLine(x + 400, y + 60, x + 403, y + 60);
g2.drawString("" + L[0], x + 403, y + 65);
drawLed(g2, alarm(L[1], al1, al2), x + 253, y + 120); //風機 右 溫度
g2.drawLine(x + 263, y + 120, x + 263, y + 110);
g2.drawLine(x + 263, y + 110, x + 320, y + 110);
g2.drawLine(x + 320, y + 110, x + 320, y + 30);
g2.drawLine(x + 320, y + 30, x + 323, y + 30);
g2.drawString("" + L[1], x + 323, y + 35);
drawLed(g2, alarm(L[2], al1, al2), x + 590, y + 89); //電機 左 溫度
g2.drawLine(x + 590, y + 99, x + 570, y + 99);
g2.drawLine(x + 570, y + 99, x + 570, y + 250);
g2.drawLine(x + 570, y + 250, x + 573, y + 250);
g2.drawString("" + L[2], x + 573, y + 255);
drawLed(g2, alarm(L[3], al1, al2), x + 676, y + 89); //電機 右 溫度
g2.drawLine(x + 696, y + 99, x + 706, y + 99);
g2.drawLine(x + 706, y + 99, x + 706, y + 270);
g2.drawString("" + L[3], x + 660, y + 275);
g2.setFont(new Font("楷體_GB2312", Font.PLAIN, 20));
g2.drawString("振動、位移單位:毫米", x + 40, 450);
g2.drawString("溫度單位:攝氏度", x + 40, 475);
// g2.draw3DRect(x,y+300,600,150,true);
g2.draw3DRect(x, 505, 600, 35, true);
drawLed(g2, 1, x + 20, 513);
g2.drawString("信號正常", x + 40, 530);
drawLed(g2, 2, x + 130, 513);
g2.drawString("信號失效", x + 150, 530);
drawLed(g2, 3, x + 240, 513);
g2.drawString("一級報警", x + 260, 530);
drawLed(g2, 4, x + 350, 513);
g2.drawString("二級報警", x + 370, 530);
g.drawImage(bimg, 0, 0, this);
}
public void start() {
if (thread == null) {
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.setName("Intro");
thread.start();
}
}
public synchronized void stop() {
if (thread != null) {
thread.interrupt();
}
thread = null;
MZ1 = MZ2 = MZ3 = MZ4 = MS1 = MS2 = MT1 = MT2 = MT3 = MT4 =
(float) 0.0;
notifyAll();
}
public void run() {
Thread me = Thread.currentThread();
while (thread == me && !isShowing() || getSize().width <= 0) {
try {
thread.sleep(500);
} catch (InterruptedException e) {
return;
}
}
while (thread == me) {
System.out.println("thread is running");
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
return;
}
}
thread = null;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -