HAbe probleme mit selbst definierten buttons.
Ich habe eine klasse FeldButton extends JButton.
in diesem wird, standartmäßig der dafault konstruktor aufgerufen.
nun hab ich mein panel in den ich folgende methode aufrufe
das panel ruft ebenfalls revalidate und repaint auf.
an sich funktioniert alles wenn ich statt FaldButtons jButtons verwende.
wenn ich aber meine buttons verwende dann werden die Buttons alle nicht angezeigt.
aber die buttons welche enabled sind werden sichtbar wenn ich die maus darüber hinweg bewege.
Was ist das Problem?
wenn ich ein panel nehme und nur einen feldbutton adde wird dieser korrekt angezeigt.
es muss also irgentwas in dieser methode statt finden.
Ich habe eine klasse FeldButton extends JButton.
in diesem wird, standartmäßig der dafault konstruktor aufgerufen.
nun hab ich mein panel in den ich folgende methode aufrufe
Java:
private void getButtons() {
int[][] felder = transfer.feldArray();
buttons = new FeldButton[felder.length][felder[0].length];
int y = 0;
int x;
for (int[] i : felder) {
x = 0;
for (int j : i) {
FeldButton button = new FeldButton(x,y);
if (j == 0) {
button.setBackground(Color.red);
button.setEnabled(false);
buttons[y][x] = button;
farbenwahl(button, x, y);
add(button); } else {
button.setText(transfer.FeldID(x, y));
button.getFont().deriveFont(30);
button.setBackground(Color.YELLOW);
buttons[y][x] = button;
machSchwarz(button, x, y);
if (button.getBackground() == Color.YELLOW) {
button.setForeground(Color.black);
} else {
button.setForeground(Color.green);
}
button.addActionListener(event);
add(button);
}
x++;
}
y++;
}
}
das panel ruft ebenfalls revalidate und repaint auf.
an sich funktioniert alles wenn ich statt FaldButtons jButtons verwende.
wenn ich aber meine buttons verwende dann werden die Buttons alle nicht angezeigt.
aber die buttons welche enabled sind werden sichtbar wenn ich die maus darüber hinweg bewege.
Was ist das Problem?
wenn ich ein panel nehme und nur einen feldbutton adde wird dieser korrekt angezeigt.
es muss also irgentwas in dieser methode statt finden.