Java - GUI - dynamisches ändern der Widgetgröße beim Fenster.Resize() |
16.12.2013, 16:15 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
Matze84 | Java - GUI - dynamisches ändern der Widgetgröße beim Fenster.Resize() Hallo zusammen. Ich bins mal wieder. Ich habe in Java mit dem SWT eine GUI zu programmieren. da drin habe ich die shell
ein Textfeld Widget
einen Button Widget
und ein Browser Widget
In der Wikipedia Klasse steht:
nun möchte ich, dass wenn ich das Fenster (shell) größer mache, dass das Browser Widget dadurch auch automatisch größer wird. (bisher funktioniert das nur für die Höhe) Vielleicht kann mir jmd das Prinzip erklären oder einen Link geben, damit ich dass dann verstehe und selbst umsetzen kann... Lg Matze |
|||||||||||||||||||||||||
|
||||||||||||||||||||||||||
16.12.2013, 18:25 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
eulerscheZahl | Hallo, ich konnte meinen Vorschlag leider nicht testen (Cannot load 32-bit SWT libraries on 64-bit JVM, ich bin zu faul, die passende Einstellung zu finden), aber was mir spontan einfällt: Das Resize-Event der entsprechenden Komponente - hier also der shell - abzufangen. etwa so (Quelle java2s.com):
|
|||||||||||||||||||||||||
17.12.2013, 10:26 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
Matze84 | sowas ähnliches habe ich mir schon gedacht... wie sähe denn dabei dein delta_x bzw delta_y genau aus? Also wo kommt das her? (oder hat dieses handleEvent das automatisch!?) (habe noch nicht geschafft reinzuschauen, das werde ich erst heute Abend schaffen) Ich wollte aber, dass auch der Button und der Text kleiner wird, damit es auf allen Auflösungen/Display-Größen annähernd gleich aussieht, weil wenn ich das Fenster ziemlich klein mache, verschwindet irgendwann der Button. (Ich weiß das hab ich im Ursprungsthread nicht so formuliert) Ich hatte gehofft dass es ein LayoutManager gibt der da ein paar Einstellungen benötigt, damit er das "von allein" macht. Sprich: sich alle Widgets holt und alle entsprechend verkleinert. Mir würde auch reichen, dass dann am Rand solche Scrollbars auftauchen, damit das ganze hin und her geschoben werden kann. PS: wie ihr sicher bemerkt habt, bin ich neu in der GUI-Programmierung und Java kenne ich auch erst ca 5Monate (Studium halt) deswegen: habt erbarmen mit mir |
|||||||||||||||||||||||||
17.12.2013, 16:13 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
eulerscheZahl | delta_x und delta_y waren von mir als Platzhalter für eine feste Zahl in Pixeln gedacht. In html werden gerne relative Größen angegeben, abgestimmt auf die Bildschirmgröße bzw. Fenstergröße. Ich Java dann so: fd_browserBrowser.setSize((int)shell.getSize().x * 0.75), (int)(shell.getSize().y * 0.80)); Von einer Möglichkeit, das automatisch anzupassen weiß ich nichts, was aber nicht heißen muss, dass es das nicht gibt. |
|||||||||||||||||||||||||
Anzeige | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
19.12.2013, 18:13 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
Matze84 | das funktioniert schon mal gut! Danke.... da müsste es aber auch noch was über die LayoutManager geben, weil es am Ende unseres Aufgabenblockes mehr oder weniger so verlangt wird. |
|||||||||||||||||||||||||
22.12.2013, 23:49 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
Matze84 | Ich habe endlich rausgefunden, wie das "automatische" Resize von Widgets geht, mittels Layouts... Die Seite ist auf englisch, aber wie ich finde trotzdem sehr gut zu verstehen, nachzuvollziehen, weil es reichlich Beispiele gibt. http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layo uts/index.html |
|||||||||||||||||||||||||
23.12.2013, 01:54 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
Matze84 | So ich bin immernoch bei meiner GUI (gott sei Dank fast fertig) Aber ich habe im Moment ein Problem... Im Quickstarter von eclipse, wo er es nicht compilet und quasi nur schnell anzeigt, wie es aussieht, sieht mein Program so aus: Bild 1 So soll es auch aussehen! Wenn ich dann aber starte (also Run As java Application) sieht das Programm erstmal so aus. Bild 2 Das Browser-Widget überdeckt quasi den Synonym-Teil in der "sashForm" Erst wenn ich die Größe des Fensters ändere, sieht es so aus, wie es soll. hier ist mal der Code (für die Darstellung) Ich habs in eine textDatei gepackt, weil es sonst ein bisschen viel wäre. Code zum Projekt Vielleicht weiß, sieht, findet jemand herraus woran das liegen könnte. |
|||||||||||||||||||||||||
23.12.2013, 02:00 | Auf diesen Beitrag antworten » | |||||||||||||||||||||||||
Matze84 | Fehler gefunden In Zeile 161 der ResizeListener, den du (eulersche Zahl) mir geschrieben hast, hat das so verschoben, ich hatte nur vergessen ihn zu löschen. Dann mal Gute Nacht. |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
|
Die Neuesten » |
|