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

📄 clicktheball.java

📁 Game Click The BALL You Play without Click The BALL
💻 JAVA
字号:
import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import javax.swing.border.*;public class ClickTheBall{   public static void main(String[] args)   {      Move frame = new Move();      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);      frame.show();   }}class Move extends JFrame{   public Move()   {      setSize(SIZE, SIZE);      setTitle("Click On The Ball !! 7408040513 & 7408040519 | Tugas OOP Semester I");      field = new JTextField(5);      field.setText("0");      field.setEditable(false);      setResizable(false);      panel = new Draw(this);      panel.setBackground(Color.black);      panel.setBorder(BorderFactory.createLineBorder(Color.yellow));      getContentPane().add(panel);      // The buttons      start = new JButton("Start");      stop = new JButton("Pause");      stop.setEnabled(false);      quitCurr = new JButton("Restart");      quitCurr.setEnabled(false);      quit = new JButton("Quit");      // The combo box      level = new JComboBox();      level.setEditable(false);      level.addItem("1");      level.addItem("2");      level.addItem("3");      level.addItem("4");      level.addItem("5");      level.addItem("6");      level.addItem("7");      level.addItem("8");      level.addItem("9");      level.addItem("10");      // The combo box Jumlah click      level1 = new JComboBox();      level1.addItem("5");      level1.addItem("10");      level1.addItem("15");      level1.addItem("20");      level1.addItem("25");      level1.addItem("30");      JPanel pane2 = new JPanel();      pane2.setBackground(Color.gray);      pane2.setBorder(BorderFactory.createLineBorder(Color.red));      JPanel pane3 = new JPanel();      pane3.setBorder(BorderFactory.createLineBorder(Color.red));      pane3.setBackground(Color.gray);      JLabel label = new JLabel("Score");      pane3.add(label);      pane3.add(field);      JLabel label2 = new JLabel("Level");      field2 = new JTextField(5);      field2.setEditable(false);      field2.setText("1");      pane3.add(label2);      pane3.add(field2);      JLabel label3 = new JLabel("Jumlah Click");      field3 = new JTextField(5);      field3.setEditable(false);      field3.setText("5");      pane3.add(label3);      pane3.add(field3);      start.addActionListener(new         ActionListener()         {            public void actionPerformed(ActionEvent e)            {               String jumlah = (String) level1.getSelectedItem();               r = Integer.parseInt(jumlah);               panel.startSimulation(r);               gameOnProgress = true;               level1.setEnabled(false);               start.setEnabled(false);               stop.setEnabled(true);               quitCurr.setEnabled(true);               panel.resetScore();            }         });      stop.addActionListener(new         ActionListener()         {            public void actionPerformed(ActionEvent e)            {               panel.stopSimulation();               gameOnProgress = false;               start.setEnabled(true);               stop.setEnabled(false);               quitCurr.setEnabled(false);            }         });      quit.addActionListener(new         ActionListener()         {            public void actionPerformed(ActionEvent e)            {               panel.stopSimulation();               gameOnProgress = false;               System.exit(1);            }         });      level.addActionListener(new         ActionListener()         {            public void actionPerformed(ActionEvent e)            {               String lev = (String) level.getSelectedItem();               theLevel = Integer.parseInt(lev);               field2.setText(lev);               panel.updateLevel(theLevel);            }         });         level1.addActionListener(new              ActionListener()         {             public void actionPerformed(ActionEvent e)             {                 String jumlah = (String) level1.getSelectedItem();                 r = Integer.parseInt(jumlah);                 field3.setText(jumlah);             }         });      quitCurr.addActionListener(new         ActionListener()         {            public void actionPerformed(ActionEvent e)            {               panel.stopSimulation();               gameOnProgress = false;               level1.setEnabled(true);               start.setEnabled(true);               stop.setEnabled(false);               quitCurr.setEnabled(false);               panel.setLocation(0.0,0.0);               panel.resetScore();            }         });      pane2.add(start);      pane2.add(stop);      pane2.add(quitCurr);      pane2.add(new JLabel("Level"));      pane2.add(level);      pane2.add(new JLabel("Jumlah Click"));      pane2.add(level1);      pane2.add(quit);      getContentPane().add(pane3, BorderLayout.NORTH);      getContentPane().add(pane2, BorderLayout.SOUTH);   }   public JTextField getMedia()   {      return field;   }   public void enableStartButton()   {      level1.setEnabled(true);      start.setEnabled(true);      gameOnProgress = false;   }   public void disablePauseButton()   {      stop.setEnabled(false);   }   public void disableQuitButton()   {      quitCurr.setEnabled(false);   }   public boolean isGameOnProgress()   {      return gameOnProgress;   }   public int getCurrentLevel()   {      return theLevel;   }   public static final int SIZE = 600;   private int theLevel;   private int r ;   private Draw panel;   private JButton start;   private JButton stop;   private JButton quitCurr;   private JComboBox level, level1;   private JButton quit;   private JTextField field;   private JTextField field2;   private JTextField field3;   private boolean gameOnProgress = false;}class Draw extends JPanel{   public Draw(Move m)   {      topEX = 0.0;      topEY = 0.0;      this.m = m;      score = 0;      field = m.getMedia();      level = 1;      addMouseListener(new MouseHandler());   }   public void paintComponent(Graphics g)   {      super.paintComponent(g);      g2 = (Graphics2D) g;      red = (int)(Math.random() * 255);      green = (int)(Math.random() * 255);      blue = (int)(Math.random() * 255);      g2.setPaint(new Color(red, green, blue));      g2.fill(ellipse = new Ellipse2D.Double(topEX, topEY, RADIUS, RADIUS));   }   public void setLocation(double x, double y)   {      topEX = x;      topEY = y;   }   public void startSimulation(int g)   {      GAMEPOINT = g;      simulator = new Runner(this, RADIUS, level);      simulator.start();   }   public void stopSimulation()   {      if(simulator != null)         simulator.interrupt();   }   public double getXP()   {      return topEX;   }   public double getYP()   {      return topEY;   }   public void updateLevel(int s)   {      if(simulator != null)         simulator.update(s);      level = s;   }   public void resetScore()   {      score = 0;      field.setText("0");   }   private class MouseHandler extends MouseAdapter   {      public void mousePressed(MouseEvent e)      {         Point p = e.getPoint();         double x = p.getX();         double y = p.getY();         if(m.isGameOnProgress())         {            if(ellipse.contains(x, y))               field.setText("" + ++score);            if(score >= GAMEPOINT)            {                              stopSimulation();               m.enableStartButton();               m.disablePauseButton();               m.disableQuitButton();               setLocation(0.0, 0.0);               JOptionPane.showMessageDialog(null, "You have won !!!", "Game Over",                  JOptionPane.INFORMATION_MESSAGE);            }         }      }   }   public static final double RADIUS = 30.0;   //public static final int GAMEPOINT = 20;   public int GAMEPOINT = 20;   private Ellipse2D.Double ellipse;   private Move m;   private JTextField field;   private Graphics2D g2;   private static int score;   private static int level;   private double topEX;   private double topEY;   private Runner simulator;   private int red;   private int green;   private int blue;}class Runner extends Thread{   public Runner(Draw panel, double rad, int fact)   {      this.panel = panel;      this.rad = rad;      this.fact = fact;      speed = 1000 / fact;      topEX = panel.getXP();      topEY = panel.getYP();   }   public void run()   {      try      {         while(!interrupted())         {            topEX += dx;            topEY += dy;            if(topEX < 0)            {               topEY += dy;               dx = Math.abs(dx);            }            if(topEX + rad >= BAR + OFFSET)            {               topEY += dy;               dx = -dx;            }            if(topEY < 0)            {               topEY = 0;               dy = -dy;            }            if(topEY + rad >= BAR)            {               topEY = BAR - rad;               dy = -dy;            }            panel.setLocation(topEX, topEY);            panel.repaint();            sleep(speed);         }      }      catch(InterruptedException e)      {      }   }   public void update(int s)   {      fact = s;      speed = 1000 / fact;   }   public static final double BAR = 500.0;   public static final double OFFSET = 100.0;   private int speed;   private double rad;   private Draw panel;   private int fact;   private double topEX;   private double topEY;   private double dx = 20.0;   private double dy = 20.0;}

⌨️ 快捷键说明

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