SWT Shell: Auslagerung von Code verändert Verhalten

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hey, ich hab nach 2 min überlegen leider keinen besseren Titel gefunden...

Ich will mir ein Eclipse Plug-In programmieren, und nutze dafür SWT, da Eclipse ja darauf aufbaut. Ich bin da ein absoluter Anfänger.
Nun hab ich mir in meiner Plugin Action einfach mal einen leeren Dialog gemacht, der beim Start des Plugins angezeigt wird:

Java:
public class MyAction implements IWorkbenchWindowActionDelegate {

	private IWorkbenchWindow window;

	@Override
	public void init(IWorkbenchWindow window) {
		this.window = window;
	}

	@Override
	public void run(IAction action) {
		Shell eclipse = window.getShell();
		Shell dialog = new Shell(eclipse, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
		Display display = eclipse.getDisplay();
		dialog.open();
		while (!dialog.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	@Override
	public void dispose() {
	}
	@Override
	public void selectionChanged(IAction arg0, ISelection arg1) {
	}
}

Das funktioniert. Nun wollte ich den Dialog in eine eigene Klasse auslagern:

Java:
public class MyDialog extends Shell {

	public MyDialog(Shell owner) {
		super(owner, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
	}
}

und in der obigen run-Methode die Änderung:
Java:
//Shell dialog = new Shell(eclipse, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
Shell dialog = new MyDialog(eclipse);

Meiner Meinung nach ist das doch jetzt noch immer der selbe Code?! Auf jeden Fall funktioniert das jetzt nicht mehr. Beim Klick auf den Button der mein Plugin startet passiert einfach gar nix, es erscheint kein Dialog. Was mach ich hier falsch?

Merci
 

hdi

Top Contributor
..oder mal anders gefragt: Ist das ein SWT Problem/Fehler von mir oder hat das eher was mit dem Plugin zu tun? Kennt sich jmd von euch mit Plugins für Eclipse aus? Vllt kann er nicht auf andere Klassen zugreifen oder weiss der Teufel... ?! Ich meine da konfiguriert man ja auch eine plugin.xml usw.. ich hab das jetzt aus einem Bsp übernommen, da hatten die aber nur 1 Klasse...
 

Sonecc

Gesperrter Benutzer
Shell darf nicht extended werden

Code:
IMPORTANT: This class is not intended to be subclassed.

steht in der Javadoc zu shell und normalerweise führt das extenden zu einem SWT-Error
 
Zuletzt bearbeitet:

hdi

Top Contributor
Achso okay danke. Ich seh halt keine Fehlermeldungen weil ich das Plugin in einer anderen Eclipse Instanz einfach starte (Debug As -> Eclipse Application).
Aber jetzt hab ich eine andere Frage: Ich vermisse eine setLocationRelativeTo() Methode bei der Shell. Irgendwie erscheint der dialog nämlich immer woanders, scheinbar bei jedem Öffnen 10px weiter unten und weiter rechts oder so ???:L

Also wie kann ich es einstellen dass sich die Shell in der Mitte der Eclipse Umgebung öffnet? Hier nochmal der Code:

Java:
// eclipse ist die Shell die mir das Plugin-Fenster beim Start mitgibt, und dialog ist meine neue Shell die ich anzeigen will

@Override
	public void run(IAction action) {
		Shell eclipse = window.getShell();
		dialog = new Shell(eclipse, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
		setupDialog();
		dialog.open();
		Display display = eclipse.getDisplay();
		while (!dialog.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	private void setupDialog() {
		// elemente erstellen und zur shell adden
		dialog.pack();
	}
 

Sonecc

Gesperrter Benutzer
Edit:
setLocation bestimmt die Position der Shell
 
Zuletzt bearbeitet:

hdi

Top Contributor
Okay gut, dann muss man das bei SWT per Hand ausrechnen scheinbar. Dachte es gäbe sowas wie relative locations. Danke
 

Sonecc

Gesperrter Benutzer
soweit ich weiß gibt es das nicht, sollte aber kein Problem sein, so etwas in einer Utility Klasse auszulagern.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Setzen von der Schriftgröße bei einem Shell AWT, Swing, JavaFX & SWT 15
T Shell entwickeln AWT, Swing, JavaFX & SWT 6
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
W SWT keybinding ESC bzw. [x] bei Shell (modal) AWT, Swing, JavaFX & SWT 2
W SWT, Shell - setMaximumSize AWT, Swing, JavaFX & SWT 2
lumo SWT Shell größe ändern... AWT, Swing, JavaFX & SWT 4
lumo SWT Shell & Menu AWT, Swing, JavaFX & SWT 2
H shell in view implementieren; menu mit keystroke unterlegen AWT, Swing, JavaFX & SWT 8
hdi SWT Zwei mal Shell öffnen = Exception AWT, Swing, JavaFX & SWT 6
HaukeG SWT Grundsätzliches über Composites, Shell und Displays AWT, Swing, JavaFX & SWT 2
C SWT Shell update probleme - Mausbewegung nötig AWT, Swing, JavaFX & SWT 2
M SWT Mutter-Shell blocken während Tochter-Shell noch offen ist AWT, Swing, JavaFX & SWT 6
E NoClassDefFoundError beim Starten einer Shell AWT, Swing, JavaFX & SWT 3
S SWT Lösen mit Shell, Container oder Group? AWT, Swing, JavaFX & SWT 5
M Shell vs. Composite AWT, Swing, JavaFX & SWT 3
V [SWT] Shell transparenz AWT, Swing, JavaFX & SWT 3
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
U Maximieren für SWT Shell unterbinden AWT, Swing, JavaFX & SWT 2
B SWT-Shell in den Vordergrund bringen AWT, Swing, JavaFX & SWT 2
T SWT - Inhalt einer Shell erst nach Größenänderung vorhanden AWT, Swing, JavaFX & SWT 5
C ApplicationWindow Shell minimieren (Anderes Event ausführen) AWT, Swing, JavaFX & SWT 4
I Shell aus einer Plugin-View öffnen . AWT, Swing, JavaFX & SWT 4
Z MessageBox ohne Shell öffnen - SWT AWT, Swing, JavaFX & SWT 7
P Icongröße von SystemIcons (aus shell) verändern?! AWT, Swing, JavaFX & SWT 3
comp_math Code snippets AWT, Swing, JavaFX & SWT 3
G JavaFX Code in neues Projekt übernehmen AWT, Swing, JavaFX & SWT 0
princess_sara1997 .jar Datei führt den Code nicht richtig aus AWT, Swing, JavaFX & SWT 19
S Ich bringe Code mit JavaFX unter Apache NetBeans IDE 12.6 nicht zum laufen. AWT, Swing, JavaFX & SWT 14
U Kann man den Code umschreiben? AWT, Swing, JavaFX & SWT 8
U Code doch nicht austauschbar in 2DGraphics AWT, Swing, JavaFX & SWT 2
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
M JavaFX kann man da noch was am code vereinfachen design technisch sieht nicht richtig aus... AWT, Swing, JavaFX & SWT 15
S ActionEvent Press Enter per Code auslösen AWT, Swing, JavaFX & SWT 22
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
CptK Ordentlicher Code & Panel ab bestimmter Komponentenzahl scrollbar machen AWT, Swing, JavaFX & SWT 12
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
L Verbindung von Code und JFrame AWT, Swing, JavaFX & SWT 4
M Swing Code funktioniert auf Windows aber nicht Linux... AWT, Swing, JavaFX & SWT 3
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
S JavaFX JavaScript Code in WebView/WebEngine AWT, Swing, JavaFX & SWT 0
L JavaFX GUI mit JavaFX. Scene Builder source code? AWT, Swing, JavaFX & SWT 6
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
Ernesto95 JavaFX FXML vs. Java Code AWT, Swing, JavaFX & SWT 3
T Hilfe bei Code AWT, Swing, JavaFX & SWT 2
B Wie erstelle ich eine JavaFX Anwendung von diesem Code? AWT, Swing, JavaFX & SWT 3
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
T Tab per Code wechseln? AWT, Swing, JavaFX & SWT 3
C Swing GUI extrem langsam - GUI-Code richtig ausführen AWT, Swing, JavaFX & SWT 1
U Bild innerhalb hatml code anzeigen AWT, Swing, JavaFX & SWT 5
N JOGL-Code != C OpenGL-Code? AWT, Swing, JavaFX & SWT 9
R Source-Code, Javadoc AWT, Swing, JavaFX & SWT 16
S NetBeans GUI Builder - Code-Platzierung AWT, Swing, JavaFX & SWT 3
J Sauberer Gui-Code? AWT, Swing, JavaFX & SWT 22
B Color String Code AWT, Swing, JavaFX & SWT 3
D JFreeChart - aktuelle code beispiele AWT, Swing, JavaFX & SWT 11
T Bei Klick Code ausführen AWT, Swing, JavaFX & SWT 17
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
B Swing Laden von serialisierten Objekten (invalid type code AC)) AWT, Swing, JavaFX & SWT 3
S Swing Scrollpanes: wie kann ich durch Java-Code an den "Anfang" scrollen AWT, Swing, JavaFX & SWT 8
J prinzipielles verständnis für Oberfläche/Code-trennung AWT, Swing, JavaFX & SWT 5
A Applet Applet aus Code neu starten AWT, Swing, JavaFX & SWT 2
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
M JFileChooser setCurrentDirectory() - Verzeichnis relativ zum Code/binary AWT, Swing, JavaFX & SWT 14
L ListSelectionListener durch Code auslösen AWT, Swing, JavaFX & SWT 3
S 2D-Grafik Warum funktioniert dieser Code ? (GUI) AWT, Swing, JavaFX & SWT 9
M ActionListener mit code!!! auslösen AWT, Swing, JavaFX & SWT 3
data89 Code-completion-window erzeugen - wie? AWT, Swing, JavaFX & SWT 2
C JTree per code selektierte Node wird nicht farbig hinterlegt AWT, Swing, JavaFX & SWT 2
K Swing GUI code tutorials? AWT, Swing, JavaFX & SWT 5
P Swing [gelöst/erledigt] Gleicher Code läuft unterschiedlich unter Linux und Windows AWT, Swing, JavaFX & SWT 5
G Code Blöcke AWT, Swing, JavaFX & SWT 6
S swt table mit checkboxen: wie nachträglich im code setzen? AWT, Swing, JavaFX & SWT 6
PAX Iconified JFrame per Code wieder anzeigen lassen (deiconify) AWT, Swing, JavaFX & SWT 2
O Source Code für "javax.swing.JLabel" ? AWT, Swing, JavaFX & SWT 2
T Öffnen von SWT-Dialogboxen durch HTML-Link in HTML-Code AWT, Swing, JavaFX & SWT 4
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
P HTMLDocument in einem JTextPane. Anhängen von HTML-Code AWT, Swing, JavaFX & SWT 2
R Sun tutorial code von jcombobox mit image im combobox fehlt! AWT, Swing, JavaFX & SWT 3
S Unterschiedliche Optik trotz gleicher Look and Feel Code? AWT, Swing, JavaFX & SWT 11
M Code umbauen ? AWT, Swing, JavaFX & SWT 7
C GUI passt sich nicht dem Code an! AWT, Swing, JavaFX & SWT 4
7 Latex/MathML Code in JTextPane AWT, Swing, JavaFX & SWT 2
B Code Architektur verbessern. AWT, Swing, JavaFX & SWT 4
R Syntax Highlighting von Java-Code AWT, Swing, JavaFX & SWT 2
O Swing Event / in GUI oder im Code ausgelöst ? AWT, Swing, JavaFX & SWT 2
J eventhandling / Problemmeldung Bitte schaut euch den Code an AWT, Swing, JavaFX & SWT 2
M Code Schloss AWT, Swing, JavaFX & SWT 11
C wysiwyg Editor zum Einbinden in meinem Code AWT, Swing, JavaFX & SWT 14
m@nu JComboBox & ItemListener: per Code 1. Item wählen AWT, Swing, JavaFX & SWT 2
M Mit JTextPane erstelltes Dokument als HTML-Code ausgeben AWT, Swing, JavaFX & SWT 4
H Code nach dem schließen eines Fensters ausführen? AWT, Swing, JavaFX & SWT 3
M Was halter iht von diesem Code? AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben