Cory
19-06-2009, 15:50
Ciao a tutti, sto provando a scrivere un piccolo giochino in Java che vorrebbe essere una semplificazione delle freccette. Sono riuscito a disegnare un bersaglio piuttosto grossolano, solamente non riesco a capire come dovrei fare per aggiungerci un MouseListener. Ne ho implementato uno ma fa riferimento a tutto il JPanel. Come posso fare a d aggiungerlo ad ogni elemento grafico??
package frecce;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Frecce extends JFrame{
public static void main(String [] args){
JFrame x=new JFrame("Freccette");
x.setSize(400, 400);
x.setVisible(true);
x.setResizable(true);
x.setContentPane(new Bersaglio());
x.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
public class Bersaglio extends JPanel{
int width=this.getWidth();
int height=this.getHeight();
int hheight=height/2;
int hwidth=width/2;
JLabel label;
JFormattedTextField punti;
public Bersaglio(){
label=new JLabel("Punteggio");
punti=new JFormattedTextField("0");
punti.setPreferredSize(new Dimension(40,20));
punti.setEditable(false);
add(label);
add(punti);
}
protected void paintComponent (Graphics g){
g.fillOval(80, 80, 250, 250);
g.setColor(Color.WHITE);
this.addMouseListener(new Click());
g.fillOval(100,100,210,210);
g.setColor(Color.RED);
g.fillOval(120, 120, 170, 170);
g.setColor(Color.YELLOW);
g.fillOval(140, 140, 130, 130);
addMouseListener(new Click2());
}
class Click implements MouseListener{
public void mouseClicked(MouseEvent e) {
punti.setText("50");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
class Click2 implements MouseListener{
public void mouseClicked(MouseEvent e) {
punti.setText("100");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
}
package frecce;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Frecce extends JFrame{
public static void main(String [] args){
JFrame x=new JFrame("Freccette");
x.setSize(400, 400);
x.setVisible(true);
x.setResizable(true);
x.setContentPane(new Bersaglio());
x.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
public class Bersaglio extends JPanel{
int width=this.getWidth();
int height=this.getHeight();
int hheight=height/2;
int hwidth=width/2;
JLabel label;
JFormattedTextField punti;
public Bersaglio(){
label=new JLabel("Punteggio");
punti=new JFormattedTextField("0");
punti.setPreferredSize(new Dimension(40,20));
punti.setEditable(false);
add(label);
add(punti);
}
protected void paintComponent (Graphics g){
g.fillOval(80, 80, 250, 250);
g.setColor(Color.WHITE);
this.addMouseListener(new Click());
g.fillOval(100,100,210,210);
g.setColor(Color.RED);
g.fillOval(120, 120, 170, 170);
g.setColor(Color.YELLOW);
g.fillOval(140, 140, 130, 130);
addMouseListener(new Click2());
}
class Click implements MouseListener{
public void mouseClicked(MouseEvent e) {
punti.setText("50");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
class Click2 implements MouseListener{
public void mouseClicked(MouseEvent e) {
punti.setText("100");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
}