All pastes #544162 Raw Edit

Someone

public java v1 · immutable
·published 2007-06-06 09:57 UTC
rendered paste body
//Main methodpublic class pong{  public static void main(String[] arg){    Tennis tennisFönster = new Tennis();    tennisFönster.setVisible(true);    }}//Tennisimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class Tennis extends JFrame{  private Tennisbana bana = new Tennisbana();  private JLabel poäng;  private JPanel p;  private JButton[] knapp  = new JButton[4];  private String[] knapptext =  {"Nytt spel" , "Paus" , "Fortsätt" , "Avsluta"};  public Tennis(){    super("Tennis");    poäng = new JLabel(" 0", JLabel.RIGHT);    poäng.setFont(new Font("Arial", Font.BOLD, 30));    p = new JPanel();    Lyssnare minLyssnare = new Lyssnare();    for (int i=0; i < knapp.length; i++){      knapp[i] = new JButton();      knapp[i].setText(knapptext[i]);      knapp[i].addActionListener(minLyssnare);      p.add(knapp[i]);    }    Container c = getContentPane();    c.add(poäng, "North");    c.add(bana, "Center");    c.add(p, "South");    addWindowListener(new WindowAdapter(){      public void windowsClosing(WindowEvent e){        System.exit(0);      }    });        pack();    bana.start(poäng);    }    class Lyssnare implements ActionListener{      public void actionPerformed(ActionEvent ae){        bana.requestFocus();        if (ae.getSource() == knapp[0]){          bana.nyttSpel();        }        else if (ae.getSource() == knapp[2]){          bana.startaSpel();        }        else{          System.exit(0);        }       }      }    }//Tennisbanaimport java.awt.*;import java.awt.event.*;import javax.swing.*;class Tennisbana extends JPanel implements ActionListener{  private Timer klocka = new Timer (10, this);  private JLabel visapoäng;  private int poäng;  private int xMax;  private int yMax;  private int radie;  private int x;  private int y;  private int vx;  private int vy;  private int xSteg;  private int ySteg;  private int racket;  private int racket1;  private int längdR;  private int stegR;  public Tennisbana(){    setPreferredSize(new Dimension(300, 400));    setBackground(Color.white);  }  public void start (JLabel p){    visapoäng = p;    xMax = getSize().width;    yMax = getSize().height;    radie = 15;    längdR = 40;    stegR= 15;    nollställ();    //Första Racket    addKeyListener (new KeyAdapter(){      public void keyPressed(KeyEvent e){        if (e.getKeyCode() == KeyEvent.VK_LEFT){          racket = Math.max(0, racket-stegR);        }        else if (e.getKeyCode() == KeyEvent.VK_RIGHT){          racket = Math.min(xMax-längdR, racket+stegR);        }      }    });      // Andra racket    addKeyListener (new KeyAdapter(){      public void keyPressed(KeyEvent e){        if (e.getKeyCode() == KeyEvent.VK_A){          racket1 = Math.max(0, racket1-stegR);        }        else if (e.getKeyCode() == KeyEvent.VK_S){          racket1 = Math.min(xMax-längdR, racket1+stegR);        }      }    });    //Storleksändring    addComponentListener(new ComponentAdapter(){      public void componentResized(ComponentEvent e){        xMax = e.getComponent().getSize().width;        yMax = e.getComponent().getSize().height;        e.getComponent().requestFocus();        repaint();      }    });    }    private void nollställ(){      poäng = 0;      visapoäng.setText(" 0");      xSteg = vx = 3;      ySteg = vy = 3;      x = xMax/2;      y = radie+2;      racket = xMax/2-längdR/2;      racket1 = xMax/2-längdR/2;    }        public void startaSpel(){      if (poäng < 10){        klocka.start();      }    }    public void stoppaSpel(){      klocka.stop();    }    public void nyttSpel(){      stoppaSpel();      nollställ();      startaSpel();    }    //anropas av timern    public void actionPerformed(ActionEvent e){      if ( y+radie >= yMax-4){        if (x < racket || x > racket+längdR){          Toolkit.getDefaultToolkit().beep();          visapoäng.setText(String.valueOf(++poäng));          if (poäng >= 10){            stoppaSpel();          }        }        else if (xSteg >0){          xSteg++;          vy++;        }        else{          xSteg--;          vy++;        }        ySteg = -vy;      }      else if (y-radie <= 0){        ySteg = vy;      }      if (x-radie<=0 || x+radie>=xMax){        xSteg = -xSteg;      }            x += xSteg;      y += ySteg;      if (y < radie){        y = radie;      }      else if (x > xMax-radie){        x = xMax-radie;      }      repaint();        }    // Boll och racket    public void paintComponent(Graphics g) {      super.paintComponent(g);      g.setColor(Color.yellow);      g.fillOval(x-radie, y-radie, 2*radie, 2*radie);      g.setColor(Color.yellow);      g.fillRect(racket, yMax-4,längdR, yMax);      g.setColor(Color.red);      g.fillRect(racket1, yMax-4,längdR, yMax);    }    }