⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bouncethread.java

📁 小游戏因为,我们年轻,所以我们有的是创新 有的是个性 有的是自信!!! 但是,我们也要有过硬的技术做后盾所以我们要脚踏实地的学习
💻 JAVA
字号:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.*;

public class BounceThread
{
   public static void main(String []args)
   {
     JFrame frame=new BounceThreadFrame();
     frame.show();
   }
}



class BounceThreadFrame extends JFrame
{
    public BounceThreadFrame()
    {
     setSize(300,200);
     setTitle("弹求");
     
     addWindowListener(new WindowAdapter()
       {public void windowClosing(WindowEvent e)
         {System.exit(0);}
        });

      Container contentPane=getContentPane();
      canvas=new JPanel();
      contentPane.add(canvas,"Center");
      JPanel p=new JPanel();

    addButton(p,"新建",new ActionListener()
    {
      public void actionPerformed(ActionEvent evt)
         {b=new Ball(canvas,Color.black);
          b.start();
         }
     });


    addButton(p,"高优先级",new ActionListener()
    {
       public void actionPerformed(ActionEvent evt)
        {
          b=new Ball(canvas,Color.red);
          b.setPriority(Thread.NORM_PRIORITY+2);
          b.start();
        }
    });

   addButton(p,"唤起",new ActionListener()
    {
        public void actionPerformed(ActionEvent evt)
        {
          b.resume();
       }
     });

  addButton(p,"Close",new ActionListener()
     {
         public void actionPerformed(ActionEvent evt)
         {
          Thread c1=Thread.currentThread() ;
          System.out.println("第"+c1.getName());
          b.suspend();
         }
      });

    contentPane.add(p,"South");
    }




     public void addButton (Container c,String title,ActionListener a)
     {
       JButton b=new JButton(title);
       c.add(b);
       b.addActionListener(a);
   
    }
       private JPanel canvas;
       Ball b;
}



class Ball extends Thread
{
     public Ball(JPanel b,Color c) 
     {
       box=b;
       i=n++;
       color =c;
     }


    public void draw()
      {
        Graphics g=box.getGraphics();
        g.setColor(color);
        g.fillOval(x,y,xsize,ysize);
        g.dispose();
      }


    public void move()
      {
       if(!box.isVisible())return;
       Graphics g=box.getGraphics();
       g.setXORMode(box.getBackground());
       g.setColor(color);
       g.fillOval(x,y,xsize,ysize);
        x+=dx;
        y+=dy;
       Dimension d=box.getSize();
      if(x<0){x=0;dx=-dx;}
      if(x+xsize>=d.width){x=d.width-xsize;dx=-dx;}
      if(y<0){y=0;dy=-dy;}
      if(y+ysize>=d.height){y=d.height-ysize;dy=-dy;}
        g.fillOval(x,y,xsize,ysize);
        g.dispose();
      }



  public void run()
  {
     try{
     draw();
     for(int i=0;i<=1000;i++)
       {move();
        sleep(5);}
     }catch(InterruptedException e){} 
   }



private JPanel box;
private static final int xsize=10;
private static final int ysize=10;
private int x=0;
private int y=0;
private int dx=2;
private int dy=2;
static int n=1;
int i=0;
private Color color;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -