Zum Inhalt springen

Frage zur GUI-Entwicklung


LukeGee

Empfohlene Beiträge

Also ich mag grundsätzlich keine WYSIWYG-Editoren und code daher immer alles selbst. Bisher hatten eigentlich alle Editoren, die ich ausprobiert habe, Code erstellt, den ich persönlich einfach nur grausam fand.

Im Grunde ist es aber egal, wie du deine GUI erstellst - du musst damit zurechtkommen.

Gruß

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, das wollte ich wissen, weil ich ja noch ziemicher Anfänger bin und mir deshalb eigentlich angewöhnen möchte, die selber zu coden.

@baba007

Was meinst du mit Schablone ?

Also Tablelayout weiß ich denke ich. Halt dieses Container zeug, wo man die Komponenten dann reinwirft, oder ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

selber coden bringt einfacher mehr und ist genauer. hinzu kommt noch , daß man dabei auch die kleinsten feinheiten eines objekts kennenlernt.

Tablelayoutmanager introduce

ding dong

Schablone ist einfach ne Zeichnung, wo ich spalten und zeilen mit abständen eintrage. dann heisst es nur noch

container.add(elementx, "2,3,4,5") z.b.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe noch eine Frage:

Ich meine mal gelesen zu haben, dass wenn man z.B. ein Frame mit GridLayout aufteilt, die eizelnen Teile mit ihrer Nummer aufgerufen werden können.

Ich möchte nun wissen, ob es geht, dass ich z.B. ein paar Buttons auf ein Panel setze und dann Panel wiederum auf eine bestimmte Zelle des mit GridLayout aufgeteitem Frame.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich möchte nun wissen, ob es geht, dass ich z.B. ein paar Buttons auf ein Panel setze und dann Panel wiederum auf eine bestimmte Zelle des mit GridLayout aufgeteitem Frame.
Ja, natürlich geht das. Ein JPanel ist schließlich auch "nur" eine Komponente, die letzten Endes wieder von java.awt.Component erbt und damit in jeden anderen java.awt.Container eingefügt werden kann. Sowas steht allerdings auch in jedem vernünftigen Tutorial und ist noch anschaulicher leicht selbst herausgefunden.

Zum Thema LayoutManager möchte ich aber auf jeden Fall nochmal das JGoodies FormLayout in die Diskussion einbringen. Danach brauchst du überhaupt keinen anderen LayoutManager mehr.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, natürlich geht das. Ein JPanel ist schließlich auch "nur" eine Komponente, die ....

Bin jetzt ein paar Tutorials durchgegangen, aber nirgens steht, wie man einen Komponente in eine bestimmte Zelle setzt.

Bsp:

Ich habe ein Frame mit

setLayout(new GridLayout(1, 3));
in drei Spalten und mit einer Zeile aufgeteilt. Also gibt es ja drei Zellen. Ich möchte jetzt z.B. einen Button hinzufügen. wenn ich einfach nur
add(button1);

mache, dann wird der Button ja in die erste Zelle gesetzt. Ich will in aber in der zweiten haben. Wie geht das ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Soweit ich es weiß, Garnicht.

Der Layoutmanager bestimmt dynamisch wie er es anordnet, dadurch dass du als spalten 1 angibst, wird er nun erstmal die ersten drei spalten füllen, und wenn dann noch mehr componenten dazu kommen, wird ne neue spalte angefügt, aber die drei zeilen bleiben.

hättest du nun bei den zeilen ne 1, und bei spalten ne 3 eingefügt, würde er immer maximal 3 spalten verwenden, abe rdie zeilen dynamisch anpassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

daher sage ich, dass du den Tablelayoutmanager oder den von Perdi nehmen sollst (obwohl der sehr ähnlich, doch etwas konfuser aufgebaut, ist)

die standardlayoutmanager sind ehrlich gesagt nicht so praktisch

abhilfe bei deinem grid, wäre ein dummy in form eines panels

.add(new JPanel);

.add(mybutton) usw.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bin jetzt ein paar Tutorials durchgegangen, aber nirgens steht, wie man einen Komponente in eine bestimmte Zelle setzt.
Ohne jetzt beim GridLayout oder einem anderen bestimmten LayoutManager nachgesehen zu haben, aber java.awt.Container definiert einen weiteren Parameter für die add Operation - die Contstraints:

The constraints are defined by the particular layout manager being used. For example, the BorderLayout class defines five constraints: BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST, and BorderLayout.CENTER.

The GridBagLayout class requires a GridBagConstraints object. Failure to pass the correct type of constraints object results in an IllegalArgumentException. [...]

Link zu diesem Kommentar
Auf anderen Seiten teilen

@LukeGee falls du immernoch wissen willst wie man bei einem 3 spalten layout etwas in die dritte spalte einfügt:

es geht in dem du die ersten 2 spalten mit dummys füllst, also immer ein leeres label oder ähnliches einsetzen. habe es zumindest so in der schulle gelernt, obs besser geht weiß ich nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok, das obige hat sich imprinzip erledigt. da ich eigentich eh mit eclipse arbeite.

da kann ich das jar ja normal importieren. ok, im ecipse kann ich die anwendung auch ausführen, aber wenn ich sie als jar exportiere und diese dannn ausführen will, wird eben TableLayut nicht gefunden. Wie kann ich das prob beheben ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da wirst Du Dich dann mal mit den Grundlagen beschäftigen müssen. Nämlich dem Classpath, was er macht, wie man ihn setzt, usw (The Javaâ„¢ Tutorials, speziell Learning the Java Language -> Packages). Es macht keinen Sinn, wenn wir Dir hier das selbe nochmal erzählen. Dort ist es gebündelt und gut erklärt beschrieben. Alternativ dazu geht natürlich auch jedes Java-Buch (http://www.amazon.com).

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

es sollen ja auch nicht irgendwo irgendwelche Dateien drinsein, in denen irgendwas von einem Classpath steht, sondern Du musst der VM genau sagen, wo und wie sie an die benötigten Klassen kommt. Dazu habe ich Dir das Sun-Tutorial empfohlen, da es dort genau drinsteht. In anderen Java-Büchern natürlich auch.

Aber probier ruhig noch mal, Dich ein wenig mit den Standard Layoutmanagern "rumzuschlagen", beim nächsten mal, wenn Du eine externe Bibliothek brauchst, stehst Du vor dem selben Problem.

Ich weiß nicht, warum sich so viele Anfänger davor scheuen, die Grundlagen zu lernen. Ihr braucht die und sie helfen Euch beim Verständnis der Vorgänge. Rumzuprobieren, bis irgendwas läuft, ist doch keine Lösung!

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...