Estou com um problema, preciso clicar em um elemento gráfico, o problema é que Graphics não tem o método addActionListener, queria sabe qual a forma que eu faço isso.
Código:
Classe onde todos os elementos gráficos deve estendidaabstract class GraficElements{
private int x, y, w, h;
private Image img;
abstract public void paint(Graphics g);
//Todos os get e set aqui...
}
public class Elements extends JPanel {
public List<GraficElements> elements = new ArrayList<GraficElements>();
public void paintComponent(Graphics g) {
int i;
for (i = 0; i < elements.size(); i++) {
elements.get(i).paint(g);
}
}
public List<GraficElements> getElements() {
return elements;
}
public void addElemets(GraficElements ele) {
elements.add(ele);
}
public void removeElements(int p) {
elements.remove(p);
}
public int getSizeE() {
return elements.size();
}
}
public class ElementImage extends GraficElements {
public ElementImage(int px, int py, int pw, int ph, String desImg) {
setX(px);
setY(py);
setW(pw);
setH(ph);
setImg(new ImageIcon(desImg).getImage());
}
public void paint(Graphics g) {
g.drawImage(getImg(), getX(), getY(), getW(), getH(), null);
}
}
public class Main {
JFrame frame = new JFrame();
Elements elements = new Elements();
ElementImage fundoImg = new ElementImage(0, 0, 800, 600, "fundo.png");
ElementImage bt1 = new ElementImage(200, 100, 80, 50, "Botao1.png");
ElementImage bt2 = new ElementImage(300, 100, 80, 50, "Botao2.png");
public Main() {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.setVisible(true);
elements.addElemets(fundoImg);
elements.addElemets(bt1);
elements.addElemets(bt2);
frame.getContentPane().add(elements);
frame.repaint();
}
public static void main(String[] args) {
FrameJogoCassanic fjc = new FrameJogoCassanic();
}
Se alguem puder ajudar, estou precisando muito.