返回列表 發帖
  1. package bbs.istak.org.tw;

  2. import java.awt.BorderLayout;
  3. import java.awt.EventQueue;
  4. import java.util.Random;

  5. import javax.swing.JFrame;
  6. import javax.swing.JPanel;
  7. import javax.swing.border.EmptyBorder;
  8. import javax.swing.JLabel;
  9. import javax.swing.ImageIcon;
  10. import javax.swing.JTextField;

  11. public class RTR extends JFrame {

  12.         private JPanel contentPane;

  13.         /**
  14.          * Launch the application.
  15.          */
  16.         public static void main(String[] args) {
  17.                 EventQueue.invokeLater(new Runnable() {
  18.                         public void run() {
  19.                                 try {
  20.                                         RTR frame = new RTR();
  21.                                         frame.setVisible(true);
  22.                                 } catch (Exception e) {
  23.                                         e.printStackTrace();
  24.                                 }
  25.                         }
  26.                 });
  27.         }

  28.         /**
  29.          * Create the frame.
  30.          */
  31.         public RTR() {
  32.                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  33.                 setBounds(100, 100, 450, 252);
  34.                 contentPane = new JPanel();
  35.                 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  36.                 setContentPane(contentPane);
  37.                 contentPane.setLayout(null);
  38.                
  39.                 JLabel flag = new JLabel("");
  40.                 flag.setIcon(new ImageIcon(RTR.class.getResource("/bbs/istak/org/tw/flag (2).png")));
  41.                 flag.setBounds(374, 180, 24, 24);
  42.                 contentPane.add(flag);
  43.                
  44.                 JLabel rabbit = new JLabel("New label");
  45.                 rabbit.setIcon(new ImageIcon(RTR.class.getResource("/bbs/istak/org/tw/r.gif")));
  46.                 rabbit.setBounds(10, 10, 58, 55);
  47.                 contentPane.add(rabbit);
  48.                
  49.                 Random sleep = new Random();
  50.                
  51.                
  52.                
  53.                
  54.                 JLabel turtle = new JLabel("New label");
  55.                 turtle.setIcon(new ImageIcon(RTR.class.getResource("/bbs/istak/org/tw/t.gif")));
  56.                 turtle.setBounds(10, 88, 82, 46);
  57.                 contentPane.add(turtle);
  58.                
  59.                 JLabel result = new JLabel("going on");
  60.                 result.setBounds(10, 180, 112, 24);
  61.                 contentPane.add(result);
  62.                
  63.                 Thread tr = new Thread(){
  64.                        
  65.                         public void run(){
  66.                                
  67.                                 for(int i = rabbit.getLocation().x ; i <= flag.getLocation().x+flag.getWidth() ; i+=20){
  68.                                        
  69.                                         rabbit.setLocation(i, 10);
  70.                                        
  71.                                         try {
  72.                                                 Thread.sleep((sleep.nextInt(5)+1)*1000);
  73.                                         } catch (InterruptedException e) {
  74.                                                 // TODO 自動產生的 catch 區塊
  75.                                                 e.printStackTrace();
  76.                                         }
  77.                                         if(rabbit.getLocation().x == flag.getLocation().x+flag.getWidth()){
  78.                                                         result.setText("rabbit win");
  79.                                                     break;
  80.                                                 }
  81.                                        
  82.                                 }
  83.                                
  84.                         }
  85.                        
  86.                 };
  87.                
  88.                 Thread tt = new Thread(){
  89.                        
  90.                         public void run(){
  91.                                
  92.                                 for(int i = turtle.getLocation().x ; i <= flag.getLocation().x+flag.getWidth() ; i+=3){
  93.                                      turtle.setLocation(i, 88);
  94.                                                      
  95.                                      
  96.                                      try {
  97.                                                 Thread.sleep(500);
  98.                                         } catch (InterruptedException e) {
  99.                                                 // TODO 自動產生的 catch 區塊
  100.                                                 e.printStackTrace();
  101.                                         }
  102.                                      if(turtle.getLocation().x == flag.getLocation().x+flag.getWidth()){
  103.                                              result.setText("turtle win");
  104.                                              break;
  105.                                      }
  106.                                 }
  107.                         }
  108.                        
  109.                 };
  110.                 tr.start();
  111.                 tt.start();
  112.                
  113.         }
  114. }
複製代碼

TOP

返回列表