G
Guest
Gast
hi,
ich hab eine klasse wuerfel die von jpanel abgeleitet ist. in dessen konstruktor wird ne zufallszahl ermittelt. ausserdem wird die paintComponent ueberschrieben und der wuerfel mit der zufallszahl gezeichnet. dann hab ich eine klasse hauptfenster (jframe) in der ich ein panel hab... und diesem panel adde ich wiederum mein wuerfel. beim starten des programms wird der wuerfel mit der gezogenen zufallszahl gezeichnet... also das funktioniert schonmal. dann hab ich in dem hauptfenster noch einen button. wenn ich diesen button drueck wird eine methode "wuerfeln()" im hauptfenster aufgerufen.. es soll also neu gewuerfelt werden. in dieser wird die instanzvariable vom typ wuerfel einfach neu instanziert d.h. es wird neu gewurfelt (im konstrukor wird ja wieder ne neue zufallszahl ermittelt). jetzt muss ich als nurnoch die neue instanz mit der neuen zufallszahl NEU zeichnen. das mach ich einfach mit repaint(). nun das funkioniert nicht. es wird zwar neu gewuerfelt (ausgabe auf der console) aber nicht neu gezeichnet.
warum nicht und wie mach es richtig ?
danke !
ich hab eine klasse wuerfel die von jpanel abgeleitet ist. in dessen konstruktor wird ne zufallszahl ermittelt. ausserdem wird die paintComponent ueberschrieben und der wuerfel mit der zufallszahl gezeichnet. dann hab ich eine klasse hauptfenster (jframe) in der ich ein panel hab... und diesem panel adde ich wiederum mein wuerfel. beim starten des programms wird der wuerfel mit der gezogenen zufallszahl gezeichnet... also das funktioniert schonmal. dann hab ich in dem hauptfenster noch einen button. wenn ich diesen button drueck wird eine methode "wuerfeln()" im hauptfenster aufgerufen.. es soll also neu gewuerfelt werden. in dieser wird die instanzvariable vom typ wuerfel einfach neu instanziert d.h. es wird neu gewurfelt (im konstrukor wird ja wieder ne neue zufallszahl ermittelt). jetzt muss ich als nurnoch die neue instanz mit der neuen zufallszahl NEU zeichnen. das mach ich einfach mit repaint(). nun das funkioniert nicht. es wird zwar neu gewuerfelt (ausgabe auf der console) aber nicht neu gezeichnet.
warum nicht und wie mach es richtig ?
Code:
public class Hauptfenster extends JFrame {
private Wuerfel spielerWuerfel1; //isn jpanel
private JPanel spielerPanel;
//...
public Hauptfenster() {
//...
spielerPanel.add(spielerWuerfel1, BorderLayout.WEST);
this.add(spielerPanel);
//...
}
public void wuerfeln(){
spielerWuerfel1 = new Wuerfel(); //neue instanz
//...
spielerWuerfel1.repaint(); //???
spielerPanel.repaint(); //???
}
}
danke !