G
Guest
Gast
Ich hab ein kleines Problem. Wenn ich normalerweise einen Button für einen ActionListener mache schreibe ich ja
Ich hatte erst die Ausgangssituation das ich eine klasse hatte (extends JPanel) mit der Eingeschaft ein Button. Das sah folgendermaßen aus:
In diesem Programmausschnitt konnte ich mich mit
A1.b
direkt auf den Button beziehen.
Nun habe ich die objekte von der klasse in einer Schleife erzeugt. Das Hinzuadden der JPanel container funktioniert ohne weiteres. Aber ich kann nicht mehr auf den Button in der klasse zugreifen. :/ Hier der neue code:
Ich wollte über
arr[1].b
direkt auf den Button zugreifen, doch er kennt die eigenschaft gar nicht mehr :/
also wollte
arr[0].b.addActionListener
arr[1].b.addActionListener
arr[2].b.addActionListener
schreiben
hat einer eine antwort wieso das nicht geht? Bzw. was ich falsch mache?
Wäre sehr nett
Liebe grüße[/code][/quote]
Code:
JButton b1 = new JButton();
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
// Methode die etwas machen soll
}
});
Ich hatte erst die Ausgangssituation das ich eine klasse hatte (extends JPanel) mit der Eingeschaft ein Button. Das sah folgendermaßen aus:
Code:
public class Spiel_brett_2 extends JFrame{
Schwarzer_Panel A1 = new Schwarzer_Panel();
public Spiel_brett_2()
{
Container cp = getContentPane();
cp.setLayout(new GridLayout(2,2));
cp.add(A1);
A1.b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
// Methode die etwas tut;
}
});
this.setSize(172,168);
this.setTitle("Schach 5000");
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
}
class Schwarzer_Panel extends JPanel
{
JButton b = new JButton();
public Schwarzer_Panel()
{
setLayout(null);
b.setBounds(0,0, 86, 84);
b.setBackground(Color.black);
add(b);
}
}
In diesem Programmausschnitt konnte ich mich mit
A1.b
direkt auf den Button beziehen.
Nun habe ich die objekte von der klasse in einer Schleife erzeugt. Das Hinzuadden der JPanel container funktioniert ohne weiteres. Aber ich kann nicht mehr auf den Button in der klasse zugreifen. :/ Hier der neue code:
Code:
public class Schach_3 extends JFrame{
public Schach_3()
{
Container cp = getContentPane();
cp.setLayout(new GridLayout(8,8));
int farbwechsel_zaehler = 1;
JPanel arr [] = new JPanel[64];
for (int i = 0; i < arr.length; i++)
{
if(i % 8 == 0 )
{
farbwechsel_zaehler++;
}
if(farbwechsel_zaehler % 2 == 0)
{
if(i % 2 == 0)
{
arr[i] = new Schwarzer_Panel();
}
else
{
arr[i] = new Weisser_Panel();
}
}
else
{
if(i % 2 != 0)
{
arr[i] = new Schwarzer_Panel();
}
else
{
arr[i] = new Weisser_Panel();
}
}
}
arr[1].b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
}
});
for (int i = 0; i < arr.length; i++)
{
cp.add(arr[i]);
}
this.setSize(680,700);
this.setTitle("Schach 5000");
this.setResizable(false);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
Schach_3 s3 = new Schach_3();
}
}
class Weisser_Panel extends JPanel
{
JButton b = new JButton();
public Weisser_Panel()
{
setLayout(null);
b.setBounds(0,0, 86, 84);
b.setBackground(Color.WHITE);
add(b);
}
}
class Schwarzer_Panel extends JPanel
{
JButton b = new JButton();
public Schwarzer_Panel()
{
setLayout(null);
b.setBounds(0,0, 86, 84);
b.setBackground(Color.black);
add(b);
}
}
Ich wollte über
arr[1].b
direkt auf den Button zugreifen, doch er kennt die eigenschaft gar nicht mehr :/
also wollte
arr[0].b.addActionListener
arr[1].b.addActionListener
arr[2].b.addActionListener
schreiben
hat einer eine antwort wieso das nicht geht? Bzw. was ich falsch mache?
Wäre sehr nett
Liebe grüße[/code][/quote]