G
Guest
Gast
Guten Morgen,
Also ich habe eine Java Applikation mit einem SWT GUI welches ein Diagramm (SWT Graphics GC ), ein Textfeld und ein Button enthält.
In das Textfeld wird die Skalierung der Grafik geschrieben und mit dem Button wird die Grafik aktualisiert, jedoch wird die Aktulisierung erst angezeigt wenn man das Fenster mit dem GUI entweder minimiert und wieder öffnet oder wenn die grösse des Fensters verändert wird. . .
Meine Frage ist nun wie kann ich das ganz automatisch Aktualisieren ??
Hier noch mein Code:
Danke schon im voraus, gruss
Also ich habe eine Java Applikation mit einem SWT GUI welches ein Diagramm (SWT Graphics GC ), ein Textfeld und ein Button enthält.
In das Textfeld wird die Skalierung der Grafik geschrieben und mit dem Button wird die Grafik aktualisiert, jedoch wird die Aktulisierung erst angezeigt wenn man das Fenster mit dem GUI entweder minimiert und wieder öffnet oder wenn die grösse des Fensters verändert wird. . .
Meine Frage ist nun wie kann ich das ganz automatisch Aktualisieren ??
Hier noch mein Code:
Code:
public void createContents(Composite parent) {
frame = parent.getShell();
// frame.setBounds(100, 200, 400, 300);
frame.setText("Graphic Tool");
textfeld = new Text(frame, SWT.BORDER);
textfeld.setBounds(20, 20, 150, 25);
textfeld.setText("50");
erhoehungs = new Text(frame, SWT.BORDER);
erhoehungs.setBounds(180, 20, 150, 25);
erhoehungs.setText("100");
erhoeungsschrittMiliSec = Integer.parseInt(erhoehungs.getText());
aktualisieren = new Button(frame, SWT.BORDER | SWT.WRAP);
aktualisieren.setBounds(20, 180, 120, 25);
aktualisieren.setText("Aktualisieren");
aktualisieren.addSelectionListener(new SelectionAdapter() {
// -----------------------------------------------------
// ------> Auf diesem Button sollte die Anzeige Aktualisiert werden ich weiss jedoch nicht genau wie - - - - -
// -----------------------------------------------------
public void widgetSelected(SelectionEvent e) {
erhoeungsschrittMiliSec = Integer.parseInt(erhoehungs.getText());
spaceBeetween = Integer.parseInt(textfeld.getText());
}
});
frame.addPaintListener(new PaintListener() {
public void paintControl(PaintEvent e) {
zeichnen(e);
}
});
}
public void zeichnen(PaintEvent e) {
int diagrammHeight = 500;
e.gc.drawRectangle(20, 10, 750, diagrammHeight);
int count = 0;
int res = 0;
String print = "";
int time = 0;
int anzahlTimesLeft = diagrammHeight / spaceBeetween;
for (int i = 0; i <= anzahlTimesLeft; i++) {
res = pointZero - count;
print = time + "ms";
e.gc.drawText(print, 5, res);
time += erhoeungsschrittMiliSec;
count += spaceBeetween;
}
e.gc.drawLine(10, 10, 20, 50);
e.gc.dispose();
}
Danke schon im voraus, gruss