Hi,
ich möchte ein Programm schreiben, mittels dessen ich die größe einer 2D-Grafik durch einen Scrollbalken beeinflussen kann.
Hier eine abgespeckte Version, dessen, was ich bisher geschrieben habe:
Jetzt ist es leider so, dass nichts passiert. Ich dachte, durch repaint() würde der Balken mit einem neuen Wert angezeigt werden. Ich konnte das ganze jetz soweit testen, dass ich die Oberfläche sehe und dass ich durch ein Label was ich eingebaut hatte, per setText() immer den neuen Wert des Balkens angezeigt bekam.
Was habe ich übersehen oder nicht beachtet?
Würde mich freuen, wenn mir jemand helfen könnte.
ich möchte ein Programm schreiben, mittels dessen ich die größe einer 2D-Grafik durch einen Scrollbalken beeinflussen kann.
Hier eine abgespeckte Version, dessen, was ich bisher geschrieben habe:
Code:
import java.awt.geom.*;
import java.awt.*;
import java.awt.event.*;
public class Balken extends Frame{
Scrollbar sc1;
int x1=100; //stargröße des Balkens
/** Inhalt */
void run(){
Frame f = new Balken();
f.setVisible(true);
f.setSize(500,300);
f.setLocation(0,0);
f.setLayout(null);
f.setResizable(false);
sc1 = new Scrollbar(Scrollbar.HORIZONTAL,0,20,0,250);
sc1.setBounds(50, 40, 150, 20);
f.add(sc1);
ScrollListener scrollEvent = new ScrollListener();
sc1.addAdjustmentListener(scrollEvent);
}
/** Main */
public static void main(String[] args){
Balken t = new Balken();
t.run();
}
/** Innere Klasse zum Eventhandling */
class ScrollListener implements AdjustmentListener{
public void adjustmentValueChanged( AdjustmentEvent e ) {
x1=sc1.getValue(); //ließt den neuen Wert dex Balkens
repaint(); // sollte (meines Wissens nach) dem das Bild aktualisieren... :-(
}
}
/** Zeigt die Grafik an */
public void paint( Graphics g ) {
Graphics2D rect = (Graphics2D)g;
rect.fillRect(50,130,x1,20); //bekommt x1 für die Breite
}
}
Jetzt ist es leider so, dass nichts passiert. Ich dachte, durch repaint() würde der Balken mit einem neuen Wert angezeigt werden. Ich konnte das ganze jetz soweit testen, dass ich die Oberfläche sehe und dass ich durch ein Label was ich eingebaut hatte, per setText() immer den neuen Wert des Balkens angezeigt bekam.
Was habe ich übersehen oder nicht beachtet?
Würde mich freuen, wenn mir jemand helfen könnte.