SWT Layout mit Sections aus Eclipse Forms

dzim

Top Contributor
Tach,

ich hab da mal ne Frage zum Thema Layout mit Sections in Eclipse Forms.
Ich habe ein Programm, dass einen View zum Navigieren in Plugins bietet. Dieser View besteht im Prinzip nur aus dynamisch untereinander angeordneten Sections, deren Client-Area jeweils mit einem TreeViewer befüllt ist.
Nun ist es so, dass ich in jedem TreeViewer beim erstellen des jeweiligen Trees "viewer.setAutoExpandLevel(TreeViewer.ALL_LEVELS);" machen muss, ansonsten wird die Höhe der Section-Inhalte nicht richtig berechnet. Sprich, mache ich das nicht, wird nur eine Default-Höhe der Sections angenommen und wenn ich dann die Trees expandiere, bleibt die höhe der Client-Area der Sections gleich.
Ich verwende derzeit GridLayout(1, true) wobei das passiert, wie die angehängten Bilder darstellen sollen.

Bild 1: alle Plugins, eins geöffnet, nicht expandiert
Bild 2: das konkrete Beispiel-Plugin, expandiert --> Section Client hat selbe höhe wie in Bild 1
Bild 3: Bereits beim erstellen des Baum expandiert: Section hat volle Höhe des Trees

Ich dachte, dass ich es mit dem ColumnLayout umgehen könnte, aber das war falsch.
Gibt es
a) eine Möglichkeit, dass ähnlich wie beim Nebula PShelf, die Gesamthöhe des Views auf alle Sections verteilt wird? (Sprich: Klappe eine Section auf und sie hat der Client hat die maximal verfügbare Höhe)
oder
b) eine Möglichkeit, dass die Client-Höhe bei jedem expandieren/kollabieren eines Baum-Element immer so hoch ist, wie der gerade sichtbare Teil des Baums? von mir aus kann es ja scrollen.

Vielleicht sollte ich erwähnen, dass ich als Parent für die Sections ein ScrolledForm verwende - vielleicht hat das ja Einfluss.

Ich hoffe es ist verständlich geworden, was mein Problem ist.

Danke und Grüße,
Daniel
 

Anhänge

  • Bildschirmfoto1.png
    Bildschirmfoto1.png
    33,6 KB · Aufrufe: 45
  • Bildschirmfoto2.png
    Bildschirmfoto2.png
    23,3 KB · Aufrufe: 42
  • Bildschirmfoto3.png
    Bildschirmfoto3.png
    33,7 KB · Aufrufe: 50

Wildcard

Top Contributor
Ich habe vor einigen Monaten eine fast identische Komponente geschrieben.
Wenn ich mich richtig erinnere habe ich dazu das gute alte GridLayout verwendet und einen Expand Listener auf die Section gesetzt um das Parent Composite neu layouten zu lassen
 

dzim

Top Contributor
Schön zu hören, das auch andere ähnliche Erfahrungen machen...
Das GridLayout verwende ich ja auch, also sollten die Grundvoraussetzungen ja ähnlich sein.

Ein ExpandListener auf die Sections würde mir allerdings recht wenig bringen (zumal die Höhe der Section korrekt neu berechnet wird, wenn man vorher den Tree im Section-Client verändert (ein paar Elemente auf-/zuklappt).
Ich dächte eher, dass man einen ITreeListener an den Viewer oder so hängen müsste. Klappt aber irgendwie mit dem layout forcieren noch nicht so, wie ich es gerne hätte (es passiert einfach nichts)
Java:
		viewer.addTreeListener(new ITreeViewerListener() {
			@Override
			public void treeExpanded(TreeExpansionEvent event) {
				composite.layout(true, true);
				composite.update();
				composite.pack(true);
				((Section) pluginItem)
						.layout(new Control[] { ((Section) pluginItem)
								.getClient() });
			}

			@Override
			public void treeCollapsed(TreeExpansionEvent event) {
				composite.layout(true, true);
				composite.update();
				composite.pack(true);
				((Section) pluginItem)
						.layout(new Control[] { ((Section) pluginItem)
								.getClient() });
			}
		});
Aber ich will ehrlich sein: Das forcieren von layouts gelingt mir immer nur mäßig, da ich nie so recht weiß, was ich neu layouten soll
den Parent des Views (FillLayout)
Das ScrolledForm, oder besser seinen Body? (GridLayout)
Die Section?
Das Composite, das als Client an die Section übergeben wurde? (GridLayout)
Den Tree auf dem Section-Client-Composite?
 

Wildcard

Top Contributor
Du solltest dem aufeklappten Element GridData mit Fill und grab vertical verpassen, damit es den gesamten restlichen Platz einnimmt.
Beim forcierten layout sollte es reichen das top composite neu layouten zu lassen und dort die Variante mit boolean Parameter zu verwenden damit auch die Kinder neu gelayoutet werden.
 

dzim

Top Contributor
Leider führte das nicht zum erhofften Ergebnis.
Beim ersten schließen eines Elements im Tree der Section passierte gar nichts. Als ich das selbe Element wieder aufklappte, würde die Section kleiner! Ein Teil des Inhalts des Trees war dann nur noch per scrollen zu erreichen.
 

dzim

Top Contributor
Ach so: Ich hab die Section, auf FILL, FILL, true, true gestellt - dann wurde aber der Platz jeder Section immer "gerecht" aufgeteilt - das sa einfach doof aus.

hier mal kurz der Quellcode des Views (nicht über das super.createPartControl wundern - mein View extendet einen abstrakten View, weil ich da ein bisschen Arbeit auslagern konnte)
Java:
	@Override
	public void createPartControl(Composite parent) {

		parent.setLayout(new FillLayout(SWT.VERTICAL));

		ScrolledForm scrolledForm = formToolkit.createScrolledForm(parent);
		formToolkit.paintBordersFor(scrolledForm);
		formToolkit.decorateFormHeading(scrolledForm.getForm());
		scrolledForm.getBody().setLayout(new GridLayout(1, true));

		scrolledForm.setText(Messages
				.getString("FormsPluginNavigatorView.scrolledForm.Text")); //$NON-NLS-1$

		Image img = CoreIconProvider.getImageByIconName("fugue_plug.png", //$NON-NLS-1$
				true);
		scrolledForm.setImage(img);

		pluginNavigator = scrolledForm;

		super.createPartControl(parent);
	}

	@Override
	protected void createPluginNavigation(Object navigation,
			Task ssdToolRootTask) {

		for (Task pluginRootTask : ssdToolRootTask.getChildren()) {

			if (!pluginRootTask.isEnabled()) {
				continue;
			}

			Section section = formToolkit.createSection(
					((ScrolledForm) navigation).getBody(), Section.TWISTIE
							| Section.TITLE_BAR);
			section.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true,
					false, 1, 1));
			formToolkit.paintBordersFor(section);
			section.setData(FORMS_ITEM_TASK, pluginRootTask);
			section.setText(pluginRootTask.getName());

			if (pluginRootTask.getDescription() != null
					&& !pluginRootTask.getDescription().isEmpty()) {
				Label label = formToolkit.createLabel(section,
						pluginRootTask.getDescription(), SWT.WRAP);
				section.setDescriptionControl(label);
			}

			Image image = null;

			if (pluginRootTask.getImage() != null) {

				image = pluginRootTask.getImage();

			} else if (pluginRootTask.getImageString() != null) {

				image = CoreIconProvider.getImageByIconName(
						pluginRootTask.getImageString(), true);

				if (image == null) {
					image = SSDToolPlugin.getImageDescriptor(
							pluginRootTask.getImageString()).createImage();
				}
			}

			if (image != null) {
				Label label = formToolkit.createLabel(section, "", SWT.NONE); //$NON-NLS-1$
				label.setImage(image);
				section.setTextClient(label);
			}

			createSinglePluginTree(section, pluginRootTask);

			section.addExpansionListener(new IExpansionListener() {
				@Override
				public void expansionStateChanging(ExpansionEvent e) {
				}

				@Override
				public void expansionStateChanged(ExpansionEvent e) {
				}
			});
		}
	}

	@Override
	protected void createSinglePluginTree(final Object pluginItem,
			final Task pluginRootTask) {

		final Composite composite = formToolkit.createComposite(
				((Section) pluginItem), SWT.NONE);
		composite.setLayout(new GridLayout(1, true));
		((Section) pluginItem).setClient(composite);

		final TreeViewer viewer = createTaskTree(composite, pluginRootTask);

		viewer.getTree().setLayoutData(
				new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

		((Section) pluginItem).setData(FORMS_ITEM_VIEWER, viewer);
		viewer.setData(FORMS_ITEM_VIEWER, ((Section) pluginItem));

		viewer.addTreeListener(new ITreeViewerListener() {
			@Override
			public void treeExpanded(TreeExpansionEvent event) {
			}

			@Override
			public void treeCollapsed(TreeExpansionEvent event) {
			}
		});
	}

in der abstrakten Klasse wird die abstrakte Methode createPluginNavigation aufgerufen, die abstrakte Methode createSinglePluginTree muss ich selbst aufrufen (wie hier in der createPluginNavigation geschehen).
Ich hatte meine Updates des Layouts in der unteren Methode gemacht. Da es aber nicht ging, hab ich erst einmal wieder alle Änderungen zurückgezogen.

Sag mir mal bitte, welche Stelle du meinst, die ich anpassen sollte.
 

Wildcard

Top Contributor
Ich komme hier so langsam durcheinander :)
Was ist jetzt genau dein Problem? Das sich die Sections beim auf- und zuklappen nicht korrekt verschieben, oder das die Sections sich nicht vergrößern wenn du den Baum weiter aufklappst?

Übrigens, die ganze Sache erinnert mich ein wenig an Riena Navigation... Vielleicht findest du dort eine schöne Lösung.
Riena/Navigation - Eclipsepedia
 

dzim

Top Contributor
Ich hab's vermutet: Ich schaffe es immer wieder alle zu verwirren.

Was geht? - Wenn beim Start die Trees aufgeklappt werden, haben die Sections auch die Höhe des Trees.
Was geht nicht? - Wenn ich im Tree Elemente auf- und/oder zuklappe, wird nicht die Höhe der Section angepasst. Das bedeutet, ist der Tree am Anfang zusammengeklappt, bekommt die Section nicht die korrekte Höhe.

Wenn ich aber die Section nach einer Manipulation am Tree zu und wieder aufklappe, wird sie mit der korrekten Höhe dargestellt.

Sprich: Ich will, dass die Section sich beim verändern des Trees enstprechend der Höhe des Trees anpassen. Das ist mir bislang aber nicht gelungen.

Ich denke mal nicht, das ich Riena so einfach integrieren kann, dass der Rest der Applikation davon nicht betroffen wird, oder?
So oder so würde ich die Navigation programatisch aufbauen.
 

Wildcard

Top Contributor
Ok, jetzt habe ich es verstanden. Dann wird es wirklich nur über einen expand listener funktionieren. Danach musst du dann die Component Hierarchie bis zum Container der Section hochklettern und layout aufrufen (wüsste zumindest nicht wie das sonst gehen soll...).
 

dzim

Top Contributor
Prinzipiell dachte ich mir das auch, doch leider ist der Aufruf von
Java:
((ScrolledForm) pluginNavigator).getBody().layout(true, true);
Anscheinend nicht genug. Jedenfalls ist das Verhalten der Section/des Trees dann etwas komisch. Es passiert dann das, was ich bereits unter Post #5 beschrieben habe.
Ich vermute mal, dass ich wo noch vorher ein update() absetzen muss - wissen tu ich es aber nicht.
 

Wildcard

Top Contributor
Ich glaube eher nicht das update hier eine Rolle spielt.
Nach dem was du in #5 beschreibst, würde ich eher vermuten, dass der Listener über das Expand informiert wird bevor es 'physikalisch' :) passiert, also bevor der Tree tatsächlich mehr Platz braucht.
Lass dir mal im Tree Listener das Ergebnis von computeSize des Tree Widgets ausgeben.
Sollte sich diese Vermutung bestätigen solltest du versuchen das layout über asyncExec auszuführen, damit der Tree die Zeit bekommt seine Größe zu verändern.
 

dzim

Top Contributor
Ja, du scheinst mit deiner Vermutung richtig zu liegen.
Ein Beispiel:
Wenn ich in einem der Trees den größten Ast zusammenklappe, bekomme ich dank
Java:
viewer.getTree().computeSize(SWT.DEFAULT, SWT.DEFAULT)
den Wert "Point {241, 269}". Klappe ich das Element wieder auseinander, bekomme ich aber "Point {241, 85}".
Es scheint also so, als würde er mit der Größenberechnung immer einen Schritt "hinterherhinken".
Dann aber gibt es praktisch gesehen, keine Möglichkeit, an die korrekten Daten zu kommen - es sei denn, ich berechne sie von Hand - und dass will ich nun wirklich nicht machen müssen - dazu bin ich zu faul ;)
 

Wildcard

Top Contributor
Wie gesagt, wenn du das layout über asyncExec weiter nach hinten in die Queue schiebst, dann sollte der Tree seine Größe berechnet haben bis das asyncExec ausgeführt wird. Und dann sollte (in der Theorie) alles funktionieren :)
 

dzim

Top Contributor
So ein sch**ß. Ich hab deinen vorangegangenen Post ja gelesen, aber den Teil mit asyncExec glatt wieder vergessen...
Es geht damit! (Einzig ein kurzes Flackern, bei dem manchmal unsinnigerweise für einen Bruchteil einer Sekunde ein Scrollbalken auftaucht ist daran störend - aber das kann ich erst mal verkraften :) )
Danke für die Tipps!
 

Wildcard

Top Contributor
Hmm, schade das es flackert, hätte ich mir aber eigentlich denken können. Eventuell kann man das beheben wenn man auf dem Parent mit den Scrollbars vor dem asyncExec setRedraw(false) aufruft und dann im asyncExec und nach dem Layout setRedraw(true). Etwas besseres fällt mir zur Zeit leider nicht ein.
 

dzim

Top Contributor
Na dass werd ich morgen mal versuchen. Im Grunde wird es vermutlich eh nie groß auffallen, da ich die Bäume erst einmal aufgeklappt lasse. Am besten wäre wohl, ich lege den Anwendern nahe, sie sollen den anderen Navigator mit PShelfs verwenden - bei dem tritt das Problem erst gar nicht auf.
Schade ist allerdings, das das PShelf und viele andere Nebula-Komponente nicht mehr weiterentwickelt werden - einige fand ich da zumindest recht interessant...
 

Wildcard

Top Contributor
Schade ist allerdings, das das PShelf und viele andere Nebula-Komponente nicht mehr weiterentwickelt werden - einige fand ich da zumindest recht interessant...
Ob und zu kommt immer noch ein neues Widget dazu. Ich habe das Gefühl das deshalb nicht weiterentwickelt wird, weil die Dinger im Prinzip alle funktionieren (ich hatte zumindest noch keine Probleme).
Ich vermute fast, dass man einfach kein Graduation Review beantragt weil Nebula weder diversifizierte Committer hat, noch eine Community vorhanden ist (Nutzer ja, Community nein). Beides sind eigentlich Vorraussetzungen um das Review zu bestehen und den Incubator verlassen zu dürfen.
 

dzim

Top Contributor
Ein kleiner abschließender Bericht sei hier mal noch drin...
Es hilft leider nichts mit den setRedraw(true/false) - aber wie gesagt: Das ist aber nun auch nicht so dramatisch, da es ja eine "Ausweichmöglichkeit" in Form der PShelf-basierten Navigation gibt.
Danke jedenfalls für deine Hilfe!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
S Layout - Problem AWT, Swing, JavaFX & SWT 1
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
R Layered Layout AWT, Swing, JavaFX & SWT 1
E showAndWait is not allowed during animation or layout processing Memory FX AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
E Swing Layout während der Laufzeit anpassen AWT, Swing, JavaFX & SWT 3
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
OSchriever Layout über Radiobuttons ändern AWT, Swing, JavaFX & SWT 4
B Swing Probleme mit dem Layout AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
I JavaFX - festes Layout AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
Neumi5694 Swing Card-Layout, Fokus AWT, Swing, JavaFX & SWT 2
kilopack15 Interface mit Layout verknüpfen AWT, Swing, JavaFX & SWT 2
Y Layout/Ausrichtungsprobleme AWT, Swing, JavaFX & SWT 4
T JavaFX Custom Layout AWT, Swing, JavaFX & SWT 5
A GUI Layout AWT, Swing, JavaFX & SWT 11
A Layout-Manager, JScrollPane, ... Chaos AWT, Swing, JavaFX & SWT 5
L wie Layout-Grid in JXPanel anzeigen? AWT, Swing, JavaFX & SWT 5
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
M LayoutManager Modalen JDialog ein Layout zuweisen AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout reagiert nicht auf Constraints AWT, Swing, JavaFX & SWT 4
IsSchoGuat LayoutManager Layout-Containergrösse AWT, Swing, JavaFX & SWT 4
F GridBag Layout AWT, Swing, JavaFX & SWT 1
Z Absolutes Layout / Kontrolle über Anordnung AWT, Swing, JavaFX & SWT 3
M Mehrere Jpanel in einem JScrollPane (Layout) AWT, Swing, JavaFX & SWT 2
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
J ComboBoxModel addElement verändert Layout AWT, Swing, JavaFX & SWT 8
E Probelm mit Layout AWT, Swing, JavaFX & SWT 1
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
P Tipps für GUI-Layout AWT, Swing, JavaFX & SWT 2
M Passender Layout-Manager AWT, Swing, JavaFX & SWT 3
M LayoutManager Layout zur Laufzeit ändern AWT, Swing, JavaFX & SWT 8
N Swing Zweifarbiges Layout für den Filechooser AWT, Swing, JavaFX & SWT 12
B LayoutManager Card Layout AWT, Swing, JavaFX & SWT 2
E Angehängtes Layout, aber wie? AWT, Swing, JavaFX & SWT 12
1 Eigenes Layout schreiben AWT, Swing, JavaFX & SWT 4
B SWT layout invalidieren in SWT? AWT, Swing, JavaFX & SWT 4
R Welchen Layout Manager/ Wie strukturieren? AWT, Swing, JavaFX & SWT 14
J Layout: oben 20% unten 80% AWT, Swing, JavaFX & SWT 12
T Layout für Listendarstellung AWT, Swing, JavaFX & SWT 3
F LayoutManager Null-Layout unter Linux im TreeCellEditor AWT, Swing, JavaFX & SWT 3
K Eclipse Layout (Gimp Layout, Tiled Layout...) AWT, Swing, JavaFX & SWT 4
C LayoutManager Passendes Layout gesucht AWT, Swing, JavaFX & SWT 2
M Layout funktioniert nicht AWT, Swing, JavaFX & SWT 3
dzim Layout von Panes in JFX2 AWT, Swing, JavaFX & SWT 17
H Layout Idee AWT, Swing, JavaFX & SWT 8
M Swing Dynamisches Layout AWT, Swing, JavaFX & SWT 10
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
J LayoutManager Komponentenaustausch zerschießt Layout AWT, Swing, JavaFX & SWT 4
F Layout-Problem AWT, Swing, JavaFX & SWT 2
K Gui Layout Frage AWT, Swing, JavaFX & SWT 5
B Anderen Layout-Manager verwenden AWT, Swing, JavaFX & SWT 17
E Null-Layout - Wie geht es ohne? AWT, Swing, JavaFX & SWT 19
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
L Swing dynamisches Image-Panel in Layout einbinden AWT, Swing, JavaFX & SWT 10
D Bild in JPanel verschiebt Layout. Wie fixieren? AWT, Swing, JavaFX & SWT 9
GUI-Programmer Wieder ne Layout Frage AWT, Swing, JavaFX & SWT 11
GUI-Programmer LayoutManager Kurze Layout Frage - eine komponente mittig? AWT, Swing, JavaFX & SWT 5
D Problem mit 3-Spalten Layout AWT, Swing, JavaFX & SWT 17
ARadauer Wenig Material zum Thema: Design, Layout, Usability von Swing Anwendungen AWT, Swing, JavaFX & SWT 11
S LayoutManager Welcher LayoutManager für dieses zweispaltige Layout? AWT, Swing, JavaFX & SWT 13
G LayoutManager Layout welches von Links nach rechts anordnet mit TOP Alignment! AWT, Swing, JavaFX & SWT 5
A Best practice für konkretes Layout AWT, Swing, JavaFX & SWT 10
G LayoutManager Layout für Spalten AWT, Swing, JavaFX & SWT 8
A Layout/JPanelgröße AWT, Swing, JavaFX & SWT 6
S pack() bei null-Layout AWT, Swing, JavaFX & SWT 10
C SWT Tabellen-Layout in StyledText? AWT, Swing, JavaFX & SWT 6
J LayoutManager Welchen Layout/Design-Manager? AWT, Swing, JavaFX & SWT 4
R Swing Layout setzen AWT, Swing, JavaFX & SWT 3
L Layout automatische Anpassung umgehen? AWT, Swing, JavaFX & SWT 5
A Problem mit Layout-Manager AWT, Swing, JavaFX & SWT 11
J Button Layout anpassen AWT, Swing, JavaFX & SWT 22
H LayoutManager Layout mit GridBagLayout machbar? AWT, Swing, JavaFX & SWT 6
B Buttongröße im Layout AWT, Swing, JavaFX & SWT 4
B LayoutManager Layout Problem AWT, Swing, JavaFX & SWT 14
O LayoutManager Layout entwerfen AWT, Swing, JavaFX & SWT 3
A diverse Layout-Fragen AWT, Swing, JavaFX & SWT 4
F LayoutManager Eigenes Layout die Lösung?! AWT, Swing, JavaFX & SWT 4
F JScrollPane verwirft Layout von JPanel AWT, Swing, JavaFX & SWT 2
C LayoutManager Layout und vergrößern des Frames AWT, Swing, JavaFX & SWT 5
E Swing Runde Buttons / Position eines Obj. im Layout AWT, Swing, JavaFX & SWT 7
S Swing UI-Elemente ordnen sich ungewollt in einer Reihe (ohne Layout) AWT, Swing, JavaFX & SWT 5
A Ungewollte Layout änderungen AWT, Swing, JavaFX & SWT 3
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
E JPanel mit Null Layout entfernt Buttons AWT, Swing, JavaFX & SWT 11
N Swing Layout positionieren AWT, Swing, JavaFX & SWT 2
B Methode setzt nicht das Layout in einer if-Abfrage AWT, Swing, JavaFX & SWT 13
H LayoutManager Dynamisches Layout AWT, Swing, JavaFX & SWT 3
M SWT Breite von Textfeld nur ohne Layout änderbar AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben