Besten Swing-Layout für 2-dimensionale Tabelle der Tasten?

Ich versuche zu schaffen, ein JDialog wie den Symbol-dialog in Microsoft Word, die Sie erhalten, indem Sie Symbol... aus der Einfügen Menü. Im Grunde ist es ein n x m (n und m sind erst zur Laufzeit bekannt) - raster mit kleinen Tasten. Ich habe eine erste version der Arbeit schön mit einem GridLayout. Das problem ist, dass beim ändern der dialog (und es ist eine Anforderung, die Sie sollten in der Lage sein, um Ihre Größe), Größe der Tasten verändert. Ich brauche die Größe des buttons in etwa konstant bleiben.

Aber ich möchte die Dimensionen des Gitters mit den Tasten zu ändern. Zum Beispiel, wenn der dialog wird breiter, bleibt aber die gleiche Höhe, die Anzahl der Zeilen verringern sollte, während die Anzahl der Spalten erhöht.

Habe ich gedacht, ein paar Möglichkeiten, dies zu beheben:

  1. Wenn der dialog geändert wird, erstellen Sie ein neues GridLayout und bevölkern Sie mit den Tasten. Ich werde versuchen, diese und sehen, wie es aussieht, aber es wirkt wie eine plumpe Art und Weise tun.
  2. Verwenden eine andere Art von layout wie ein FlowLayout. Ich nahm einen Stich an, aber er legte alle n x m Tasten in einer Zeile. Ich nicht wollen, verwenden Sie die horizontale scroll-bars und die Tasten lief den rechten Rand. Wie auch immer, es soll eine 2-dimensionale Tabelle der Tasten.

Was ist der beste Weg zur Lösung dieses layout-problem?

  • Wie über die Verwendung von gridlayout für das JPanel halten Sie die Tasten und dann die Verschachtelung dieses JPanel in einem anderen JPanel das FlowLayout verwendet oder einige andere layout, dass nicht die Größe der button-holding JPanel.
  • Das ist eigentlich der code geschrieben von MByD. Obwohl er empfiehlt ein BoxLayout, die demo nutzt ein JPanel mit seinem Standard-layout, welches ein FlowLayout.
InformationsquelleAutor Paul Reiners | 2011-04-20
Schreibe einen Kommentar