Hi
ich möchte eigene JButtons erstellen,welche über die Methode setMarked(boolean) verfügen.
Bei Aufruf von setMarked soll der Button eine im übergeordneten Container definierte Farbe welche dort mit
setMyColors() gesetzt wird annehmen.
Nun hat ein Container die setMyColors() methode ja noch nicht - weshalb der Versuch in MyButton eine Farbe mit
getParent().getMyMarkedColor abzurufen scheitert .
Muss wohl irgendwie mit interfaces arbeiten - verstehe aber das Prinzip nicht !
Hier der Container :
Hier der Button :
Den Code hab ich nur für die Frage erstellt .
Vielen Dank schonmal im voraus,schönen abend noch,nino
ich möchte eigene JButtons erstellen,welche über die Methode setMarked(boolean) verfügen.
Bei Aufruf von setMarked soll der Button eine im übergeordneten Container definierte Farbe welche dort mit
setMyColors() gesetzt wird annehmen.
Nun hat ein Container die setMyColors() methode ja noch nicht - weshalb der Versuch in MyButton eine Farbe mit
getParent().getMyMarkedColor abzurufen scheitert .
Muss wohl irgendwie mit interfaces arbeiten - verstehe aber das Prinzip nicht !
Hier der Container :
Java:
public class FrageInForum extends JPanel
{
private MyButton myButton ;
private Color myBackgroundColor , myMarkedColor ;
public FrageInForum()
{
setMyColors();
myButton = new MyButton();
}
private void setMyColors ()
{
myBackgroundColor = Color.BLUE ;
myMarkedColor = Color.RED ;
}
public Color getMyBackgroundColor() {
return myBackgroundColor;
}
public Color getMyMarkedColor() {
return myMarkedColor;
}
}
Java:
public class MyButton extends JButton
{
boolean marked ;
public MyButton()
{
reset();
setState();
}
public void setMarked(boolean marked) {
this.marked = marked;
}
public void reset() // Init
{
this.setBackground(this.getParent().getMyBackgroundColor());
}
private void setState()
{
if (marked = false)
{
this.setBackground(this.getParent().getMyBackgroundColor());
}
else
{
this.setBackground(this.getParent().getMyMarkedColor());
}
}
}
Vielen Dank schonmal im voraus,schönen abend noch,nino