Hi, kann mir jemand sagen wie ich ein Mauscklick event für ein Swing JPanel erzeuge?. Also im Prinzip was ich bei dem mainPanel noch eingeben muss um die "public void actionPerformed(ActionEvent arg0 ) aufrufen zu können.
Hier der Teil meines Codes:
Code:
import javax.swing.*;
import java.awt.Color;
import java.awt.event.*;
import java.util.HashMap;
import javax.swing.colorchooser.*;
public class GameofLife implements ActionListener{
f = new JFrame( "Spiel des Lebens" );
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.setSize( 970, 970 );
f.setVisible( true );
f.setBackground(Color.DARK_GRAY);
JPanel mainPanel = new JPanel ();
mainPanel.setVisible(true);
mainPanel.setBackground(Color.DARK_GRAY);
f.add(mainPanel);
}
public void actionPerformed(ActionEvent arg0) {
}
public static void main( String[] args )
{
}
mhh klingt logisch ^^ aber bei mir geht das nicht. es kommt bei der auswahl nicht und wird somit rot unterstrichen. keine ahnung warum. hab ich irgendwo was vergessen?
Moment ich hau mal den ganzen Code rein. vlt liegt der Fehler irgendwo anderst.
Also ich möchte dass beim Mausklick vom Panel lol die public void actionPerformed(ActionEvent arg0) {} aufgerufen wird. Ich hab im quellcode die stelle markiert. keine ahnung warum lol.addactionlistener nicht funktioniert.
Code:
import javax.swing.*;
import java.awt.Color;
import java.awt.event.*;
import java.awt.*;
import java.util.HashMap;
import javax.swing.colorchooser.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class GameofLife implements ActionListener
{
private int feld; //private
private JFrame f; //private
private JPanel mainPanel; //private
private HashMap meinePanels; //private
public String john;
public GameofLife(int feld)
{
this.feld = feld;
f = new JFrame( "Spiel des Lebens" );
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.setSize( 970, 970 );
f.setVisible( true );
f.setBackground(Color.DARK_GRAY);
JPanel mainPanel = new JPanel ();
mainPanel.setVisible(true);
mainPanel.setBackground(Color.DARK_GRAY);
f.add(mainPanel);
meinePanels = new HashMap();
for (int i = 0; i < feld*feld; i++ ){
JPanel pi = new JPanel ();
pi.setBackground(Color.gray);
pi.setVisible(true);
pi.setSize(10,10);
mainPanel.add(pi);
meinePanels.put(String.valueOf(i), pi);
}
f.setSize(f.getSize().height,f.getSize().width-50);
JPanel lol = (JPanel) meinePanels.get("0");
//Hier ist die Stelle !!!!!!
}
public void changeColorofPanel(int whatPanelNumber)
{
JPanel h = (JPanel) meinePanels.get(String.valueOf(whatPanelNumber));
if (h.getBackground().equals(Color.gray))
{
h.setBackground(Color.yellow);
}
else
{
h.setBackground(Color.gray);
}
}
public boolean isPanelDead(int whatPanelNumber)
{
JPanel h = (JPanel) meinePanels.get(String.valueOf(whatPanelNumber));
if (h.getBackground().equals(Color.gray))
{return true;}
else {return false;}
}
public HashMap getHashMap()
{
return meinePanels;
}
public static void main( String[] args )
{
/*
JPanel j0 = (JPanel) meinePanels.get("0");
j0.setBackground(Color.yellow);
*/
GameofLife test = new GameofLife(48);
for (int i =0; i< 48*48; i++)
{
test.changeColorofPanel(i);
}
for (int i =0; i< 48*48; i++)
{
test.changeColorofPanel(i);
}
for (int i =0; i< 48*48; i++)
{
System.out.println(test.isPanelDead(i));
}
}
public void actionPerformed(ActionEvent arg0) {
}
}