2016-04-28 7 views
0

Krank mit Dutzenden von verschiedenen Layout-Manager, entschied ich mich, es durch MiGLayout in meinem eigenen Projekt zu ersetzen. Der Grund liegt in der Verwendung eines Layout-Managers über das gesamte Projekt hinweg: Die Regeln für das Layout sind für alle Komponenten gleich, die Flexibilität des Managers ist riesig, daher erschien diese Idee attraktiv und ich war froh, alles überkomplizierte eingebaute System wegwerfen zu können Java Layoutmanager.MiGLayout zwingt schlechte Praxis, oder ich missverstanden seine Verwendung?

Da es in docs geschrieben ist, nimmt MiGLayout Zeichenketten als Argumente beim Auslegen GUI. Außerdem kann eine Zeichenfolge (ein Argument) mehr als eine Anweisung für den Layout-Manager enthalten. Natürlich kann man Verkettungsmethoden verwenden, aber, so wie ich es verstehe, ist dieser Weg kein 'Standard' für MiGLayout, daher wird es von MiGLayout-Dokumenten nicht empfohlen. Bei der Verwendung von MigLayout habe ich irrtümlicherweise manchmal falsche Anweisungen in eine Zeichenfolge geschrieben, und dies verursacht keinen Fehler in der Kompilierungszeit (Methode braucht String, und String wird an ihn übergeben - Compiler denkt, es ist in Ordnung). Fehler erscheinen in der Laufzeit - mein Programm scheitert mit java.lang.IllegalArgumentException (Grund ist 'Illegal Constraint' in MiGLayout-Klassen), und ich habe keine guten Ideen, wie ich elegant damit umgehen kann, außerdem bin ich mir nicht sicher, dass dies Niveau der Ausnahmen ist meine Kopfschmerzen). Wie auch immer, auch wenn ich eine elegante Möglichkeit finden werde, die Exception-Behandlung meines Code-Layout-Managers hinzuzufügen, scheint das Konzept der Verwendung von "Multiarg" -Strings als Argumente schlecht zu sein, weil es Fehler im Code provoziert Fehler in der Zukunft, würde nicht von IDE hervorgehoben werden). Im Allgemeinen ist das Tragen potentieller Fehler von der Kompilierzeit zur Laufzeit keine gute Vorgehensweise. MiGLayout ist jedoch ein weit verbreiteter Layout-Manager, auf den im offiziellen Oracle Using Layout Managers Tutorial verwiesen wird, und ich denke, es wäre nicht so populär, wenn es schlechte Praxis während der GUI-Entwicklung zwang. Daher habe ich das Gefühl MiGLayout mit Konzepten zu missverstehen, und ich werde für einige Erklärungen von erfahrenen MiGLayout-Benutzern dankbar sein.

+0

Wenn Sie irgendeine ** ilegal Constraint ** als Miglayout-Einschränkung bestanden haben, wie erwarten Sie dann, dass sie ** Gracefully ** damit umgehen? Da die Benutzeroberfläche nicht angezeigt wird. Also, ich glaube im Grunde, dass Sie die Syntax der Einschränkungen lernen sollten, um sie zu benutzen. Auch zu Ihrer Aussage, mehrere Argumente übergeben zu müssen, würde ich sagen, wenn Sie ein falsches Argument übergeben, sagen wir "Zelle 1 0" statt "Zelle 0 1", würde die Komponente angezeigt, würde aber an der falschen Stelle landen . – Blip

Antwort

0

Wenn es Ihnen erlaubt, Einstellungen auf andere Weise anzuwenden, ist es nicht wirklich zwingt Sie in schlechte Praktiken. Es gibt Ihnen einen typsicheren und nicht-sicheren Weg.

Der nicht-typsichere Weg ist wichtig, wenn die Layout-Einstellungen extern gespeichert werden, zum Beispiel in Programmen, mit denen Sie das Layout im Programm ändern und die Einstellungen für das nächste Mal speichern können.

Ob Sie das eine oder andere in einem Programm, das nicht zu speichern, benötigt das Layout basiert Meinung verwenden sollten, obwohl Java Sprache ein typsicher ist.

Verwandte Themen