Zum Inhalt springen

Frage zur GUI-Entwicklung


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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 ?

Geschrieben

von Hand ist es besser zu lernen und man versteht viel mehr, was man eigentlich macht. Wenn man allerdings Zeitdruck hat und die Oberfläche nur als Mittel zum Zweck dienen soll würde ich zu einem Editor raten. Definitiv unabhängiger biste aber wenn du es alles per Hand machst.

Ciao

Geschrieben

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.

Geschrieben

Und wie geht das ? Also wenn ich ein Panel dem Frame hinzufügen und das ein BorderLayout ist, dann mach ich das ja z.B. mit

add(component, BorderLayout.SOUTH);

aber wie geht's wenn das Frame mit GridLAyout unterteil ist und ich das Panel z.B. in die 5. Zelle haben will ?

MfG

Geschrieben
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.

Geschrieben
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 ?

Geschrieben

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.

Geschrieben

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.

Geschrieben
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. [...]

Geschrieben

Ich möcht mich jetzt mal mit dem TableLayoutManager befassen. Habe mir mal das jar geladen, aber wohin muss ich das hintun, dass ich es mit import ..... einbinden kann ? und wenn ich das programm weitergebe, muss das auch mit, oder ?

Geschrieben

ich hoffe du redest von eclipse !

Auf Projekt, recht klick, properties -> Java Build Path -> Tab: Libraries -> Add external jars

dann entweder import layout.TableLayout oder info.clearthought.layout.TableLayout;

Geschrieben

@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.

Geschrieben

Und wie mache ich das ? Ok, wie weiss, wie ich den Classpath ändere, aber nicht wie ich eine Bibliothek hinzufüge. as muss ich dann beachten, wenn ich das programm weitergebe ? und: was ist, wenn ich mit tablelyout... ein webapplet mache/machen will ?

Geschrieben

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 ?

Geschrieben

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

Geschrieben

Naja, im exportierten jar ist eine Datei drin, die den classpath für TableLayout enthält, aber gehen tut's trotzdem nicht. Naja, ist erstmal egal. Schlag ich mich noch bissel mit den Standard Layout Manageren rum ;)

Geschrieben

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

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...