Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
und zwar habe ich ein Problem mit meinem Changelistener.
Dieser hört auf einen JSlider und es soll sich mit dem veränderten Jslider ein Bild, dass sich im gleichen Panel befindet ändern. Die metode stateChanged hört schon auf den Slider und gibt (nur als Test) auch richtige System.outs.
Nun dachte ich ich kann das JLabel wie unten gezeigt verändern, und es das repaint()...en - das geht aber leider nicht.
Evtuell hab ich ja auch einen flaschen Ansatz. Ich hoffe mir kann jemand helfen.
Code:
public void stateChanged(ChangeEvent e) {
int zahl1;
JSlider source = (JSlider)e.getSource();
if (!source.getValueIsAdjusting()) {
int menge = (int)source.getValue();
switch(menge)
{
case 0:
label1.setImage("images/butt.gif");
repaint();
label1 = new JLabel( new ImageIcon("images/butt.gif") );
System.out.println("Wert0");
break;
case 15:
label1 = new JLabel( new ImageIcon("images/kies_grau.gif") );
System.out.println("Wert15");
break;
case 30:
label1 = new JLabel( new ImageIcon("images/kies_gelb.gif") );
System.out.println("Wert30");
repaint();
break;
}
}
else {
System.out.println("Nix bewegt sich digaaaaah");
}
}
janeeee - mal wieder nicht genau auf mein problem hingewiesen :roll:
also das prob is das ich bei einem jlabel kein setimage benutzten darf.
ich weiß nicht ob es nicht theoretisch auch reichen würde, wenn ich das jlabel einfach (wie unten gemacht) das label einfach neu erzeuge und dann repainte? aber viel wichtiger - reicht den ein repaint des labels alleine aus um hiermit dann das veränderte bild sich auch im panel verändern zu lassen? oder muß ich den pannel neu zeichnen? der panel kann es doch nicht sein, denn dann würde auch der slider in seine ursprüngliche posotion zurück gesetzt werden!!?!
falls setImage nicht geht:
setIcon scheint mir die passendere Operation zu sein,
mit new JLabel erzeugst du ein separates Objekt,
das ist etwas schwieriger,
da musst du das alte Objekt aus der GUI entfernen und das neue an gleicher Stelle wieder einfügen,
sowas machst du ja bisher gar nicht