SWT Statusmeldung im neuen Fenster blockiert aufrufendes Fenster

Status
Nicht offen für weitere Antworten.

ra117

Neues Mitglied
Hallo,

ich möchte eine Statusmeldung in einem Extra-Fenster für ein paar Sekunden anzeigen und automatisch wieder schliessen. Dabei sollte das Hauptfenster während dieser Zeit bedienbar bleiben. Ich weiss dass dies mit einem neuen Thread gelöst werden muss, doch leider bleibt die Bedienung des Hauptfensters blockiert.

Ich habe schon in vielen Foren gestöbert finde aber nicht die Lösung meines Problems. Sieht jemand meinen Fehler ??

Die Hauptanwendung (auslösen der Statusmeldung durch Enter-Taste):
Code:
package de.test.sandbox;
 
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
 
public class RunSmartMessage {
 
 public static void main(String[] args) {
  final Display display = new Display();
  final Shell shell = new Shell(display);
 
 
  Text text1 = new Text(shell, SWT.BORDER);
  text1.setText("vorbelegt");
  text1.setBounds(50,50,200,20);
  text1.addKeyListener(new KeyAdapter() {
   public void keyPressed(KeyEvent e) {
    if (e.character == SWT.CR) {
     SmartMessage sm = new SmartMessage(shell, "Eine kleine Testmessage", 5000);
     sm.printMessageInNewThread();
    }
   }
  });
 
  shell.open();
 
  while(!shell.isDisposed()) {
   if(!display.readAndDispatch())
    display.sleep();
  }
  display.dispose();
 }
}

und hier die Klasse der Statusmeldung:
Code:
[LEFT]package de.test.sandbox;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;[/LEFT]
 
[LEFT]public class SmartMessage {[/LEFT]
 
[LEFT]private Shell  shell;
private String message;
private Long displayTime = 1000L;[/LEFT]
 
[LEFT]public SmartMessage(Shell parentShell) {
shell = new Shell(parentShell, SWT.NO_TRIM | SWT.ON_TOP);
}[/LEFT]
 
[LEFT]public SmartMessage(Shell parentShell, String displaymessage) {
this(parentShell);
this.message = displaymessage; 
}[/LEFT]
 
[LEFT]public SmartMessage(Shell parentShell, String displaymessage, int displaytime) {
this(parentShell, displaymessage);
this.displayTime = (long)displaytime; 
}[/LEFT]
 
[LEFT]public void printMessage() {
int textSize = message.length() * 7;
shell.setLocation(800,200);[/LEFT]
 
[LEFT]// Colors
shell.setBackground(shell.getDisplay().getSystemColor(SWT.COLOR_RED));
shell.setForeground(shell.getDisplay().getSystemColor(SWT.COLOR_WHITE));[/LEFT]
 
[LEFT]// Font-Definition
Font myFont = shell.getFont();
FontData[] fontdata = myFont.getFontData();
fontdata[0].setHeight(10);
fontdata[0].setStyle(SWT.BOLD);[/LEFT]
 
[LEFT]shell.setFont(new Font(Display.getCurrent(), fontdata[0]));
shell.addPaintListener(new PaintListener() {
 public void paintControl(PaintEvent e) {
  final PaintEvent pe = e;
  Point occupiedTextSize = e.gc.textExtent(message);
  shell.setSize(occupiedTextSize.x+10, occupiedTextSize.y);
  pe.gc.drawString(message, 5, 0, true);
  System.out.println("Paint");
 }
});
shell.open();
try {
 Thread.sleep(displayTime);
} catch (InterruptedException e1) {
 e1.printStackTrace();
}
shell.close();[/LEFT]
 
[LEFT]}
public void printMessageInNewThread() {
new Thread() {
 public void run() {
  Display.getDefault().asyncExec(new Runnable() {
   public void run() {
    printMessage();
   }
  });
 }
}.start();
}[/LEFT]
 
[LEFT]}[/LEFT]
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Statusmeldung anzeigen und nach gewisser Zeit ausblenden AWT, Swing, JavaFX & SWT 4
A Nach klick auf Button neuen Inhalt im gleichen Fenster AWT, Swing, JavaFX & SWT 3
J Swing Neuen Command für "show"? AWT, Swing, JavaFX & SWT 2
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
F neuen Menüpunkt in jcombobox einfügen AWT, Swing, JavaFX & SWT 1
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
O Neuen JFrame öffnen und alten schließen AWT, Swing, JavaFX & SWT 7
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
F JTabbedPane mit Button zum Hinzufügen eines neuen Tabs AWT, Swing, JavaFX & SWT 6
R SWT TreeViewer neuen Input setzen AWT, Swing, JavaFX & SWT 3
T JTabbedPane - neuen Tab zwischen zwei anderen Tabs hinzufügen AWT, Swing, JavaFX & SWT 2
Ollek IndexOutOfBoundsException bei neuen Daten in JTable AWT, Swing, JavaFX & SWT 13
M PropertyChangeListener - JTable bei neuen Objekten updaten? AWT, Swing, JavaFX & SWT 3
D Swing FileChooser mit einem neuen Rootordner AWT, Swing, JavaFX & SWT 6
D Aufruf neuer Klasse ohne Erzeugung eines neuen Fensters AWT, Swing, JavaFX & SWT 3
E Applet Neuen Tab aus Applet öffnen AWT, Swing, JavaFX & SWT 3
Ollek Realisierung: JTable zur Laufzeit mit neuen Daten füllen AWT, Swing, JavaFX & SWT 3
T Neuen JInternalFrame von JLabel "herunterziehen" AWT, Swing, JavaFX & SWT 6
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
N Neuen Kunden anlegen AWT, Swing, JavaFX & SWT 26
G JFile Chooser "Buttons" wie Neuen Ordner erstellen AWT, Swing, JavaFX & SWT 3
S BufferedImage & Scaling: Altes Problem im neuen Gewand AWT, Swing, JavaFX & SWT 2
G JList Neuen Eintrag sofort anzeigen AWT, Swing, JavaFX & SWT 10
M Focus beim öffnen eines neuen JFrames AWT, Swing, JavaFX & SWT 6
D JButton einen neuen ImageIcon setzen? AWT, Swing, JavaFX & SWT 2
S Problem, neuen JInternalFrame zur Laufzeit anzuzeigen AWT, Swing, JavaFX & SWT 8
G Screen nach Auswahl schließen und neuen öffnen?wie mach ichs AWT, Swing, JavaFX & SWT 8
O Brauche ich einen neuen Frame? AWT, Swing, JavaFX & SWT 2
H JTree nach setzen eines neuen TreeModels aufklappen AWT, Swing, JavaFX & SWT 2
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
J JavaFx PDF in einem Element in einem Fenster anzeigen. AWT, Swing, JavaFX & SWT 11
K JavaFX unterschiedliche (mehrere Fenster) in seperater Main Methode AWT, Swing, JavaFX & SWT 26
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
L Swing Files abspeichern mit Save as Dialog Fenster AWT, Swing, JavaFX & SWT 5
OZAN86 einfaches Fenster öffnen scheitert AWT, Swing, JavaFX & SWT 18
G Zuletzt aktives Fenster, vor dem aktuell aktiven AWT, Swing, JavaFX & SWT 2
sserio Kann man bei JavaFx ein Fenster aufkommen lassen? AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
CptK Fokus auf geöffnetes Zweit-Fenster setzen und Eingaben außerhalb blocken AWT, Swing, JavaFX & SWT 2
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
MiMa JavaFX Fenster in JavaFX öffnen Schliessen (Initialisierung) AWT, Swing, JavaFX & SWT 20
N Kontextmenü (Popup-Fenster) erstellen AWT, Swing, JavaFX & SWT 3
L Hintergrundbild im Fenster darstellen AWT, Swing, JavaFX & SWT 9
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
B JavaFX TextField Eingabe in neues Fenster übernehmen AWT, Swing, JavaFX & SWT 4
N Drag and Drop Fenster AWT, Swing, JavaFX & SWT 11
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
J Fenster mit Inhalten aus einem Array Füllen AWT, Swing, JavaFX & SWT 4
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
A Fenster genau unterhalb von JTextField anzeigen AWT, Swing, JavaFX & SWT 1
J Overlay Panel statt neues Fenster AWT, Swing, JavaFX & SWT 6
S Swing Bei start des Programmes kein Fenster zu sehen AWT, Swing, JavaFX & SWT 1
X Neues Fenster mit Button öffnen und bearbeiten AWT, Swing, JavaFX & SWT 4
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
P JavaFX Fenster lädt nicht mehr AWT, Swing, JavaFX & SWT 4
I AWT Listener während man in anderem Fenster ist AWT, Swing, JavaFX & SWT 4
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
D Swing Neues (3.) Fenster öffnen AWT, Swing, JavaFX & SWT 2
G JavaFX Fenster 1 Array übertragen zur Fenster 2 AWT, Swing, JavaFX & SWT 0
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
K Fenster welches den Sieger anzeigt AWT, Swing, JavaFX & SWT 5
O JavaFX Fenster scließen AWT, Swing, JavaFX & SWT 4
A Swing Fenster ändert Position bei Mausklick nicht AWT, Swing, JavaFX & SWT 2
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
L Input aus Sub-Fenster Startfenster übergeben AWT, Swing, JavaFX & SWT 5
B AWT Fenster schließt nicht AWT, Swing, JavaFX & SWT 2
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
T Fenster schließen AWT, Swing, JavaFX & SWT 4
K JavaFX ObservableList + Fenster AWT, Swing, JavaFX & SWT 6
windl Transparentes / halbtransparentes Fenster AWT, Swing, JavaFX & SWT 1
K Fenster mittig im Vollbildschirm - ok, aber ... AWT, Swing, JavaFX & SWT 2
N Swing Sorry nicht mal ein Fenster öffnen... AWT, Swing, JavaFX & SWT 19
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
C Benutzername in GUI eingeben und nach Spiel neues Fenster Benutzername wieder anzeigen AWT, Swing, JavaFX & SWT 1
C Durch klicken von Button neues Fenster oeffnen AWT, Swing, JavaFX & SWT 18
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
J Button vergrößert sich bei Fenster resize AWT, Swing, JavaFX & SWT 22
L Zweites Fenster mit Thread AWT, Swing, JavaFX & SWT 0
Paul15 Zwei Fenster AWT, Swing, JavaFX & SWT 23
T LayoutManager Methode, um Bildschirm(fenster) für Aktualisierungen zu blockieren bzw. freizugeben gesucht AWT, Swing, JavaFX & SWT 2
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
D Mit Klick auf Button ein neues Fenster erzeugen AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben