/***************************************** UI程式設計範本 *************************************************/ import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.image.*; //想想還有沒有其他的東西要import public class ui48 extends JFrame implements MouseListener//名稱改一改 { Container c; //設定UI元件 int x1,y1,x2,y2; int speed1,speed2; BufferedImage bi; //設定共用的變數與類別 public ui48() //建構元,名稱改一改 { super("UI多執行緒範例設計範本"); //初始化共用變數 x1=0;x2=639; y1=200;y2=300; speed1=100; speed2=250; bi=new BufferedImage(640,480,BufferedImage.TYPE_INT_RGB); addMouseListener(this); c=getContentPane();//取得ContentPane setSize(640,480);//設定size,顯示出去 setVisible(true); new Thread(){ public void run(){ try{ while (true) { Thread.sleep(speed1); x1=x1+5; if(x1>639) x1=0; repaint(); } } catch (Exception ee){System.out.println(ee);} } }.start(); new Thread(){ public void run(){ try{ while (true) { Thread.sleep(speed2); x2=x2-5; if(x2<0) x2=639; repaint(); } } catch (Exception ee){System.out.println(ee);} } }.start(); } public void paint(Graphics gg) { Graphics g=bi.createGraphics(); super.paint(g);//畫出元件 //額外的畫圖程式寫在這裡 g.setColor(Color.red); g.fillRect(x1,y1,80,30); g.setColor(Color.green); g.fillRect(x2,y2,80,30); gg.drawImage(bi,0,0,null); } //UI元件事件處理類別寫在這裡 //滑鼠事件處理類別寫在這裡 /***主程式***/ public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mousePressed(MouseEvent e) { int color,R,G,B; color=bi.getRGB(e.getX(),e.getY()); R=(color>>16) &0xff; G=(color>>8) &0xff; B=(color) &0xff; if (R>0) speed1=speed1/2; if (G>0) speed2=speed2/2; } public static void main(String args[]) //程式起點 { ui48 app=new ui48(); //名稱改一改,啟動UI元件 app.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0); } }); //處理視窗關閉要求 } }