この記事は CAMPHOR- Advent Calendar 2014 9日目の記事です。
こんにちは、@akaaariiiiin です。
今回は、Java のレイアウトマネージャ MigLayout を紹介します。
最近、Java で GUIアプリをつくる機会があったのですが、、、
なかなか思い通りにレイアウトできない!
そんなときに出会ったのが MigLayout でした。
便利すぎて感動しました。
MigLayout では、コンポーネントが格子状に配置されます。
コンポーネントを追加していくと、左上から右に配置されていき、wrap を指定すると改行します。
列と行を指定してコンポーネントを追加することもできます。
1 2 3 4 5 6 7 8 9 10 |
JPanel panel = new JPanel(new MigLayout("", "", "")); panel.add(new JButton("Button 1"), ""); panel.add(new JButton("Button 2"), ""); panel.add(new JButton("Button 3"), ""); panel.add(new JButton("Button 4"), "wrap"); // 改行 panel.add(new JButton("Button 5"), ""); panel.add(new JButton("Button 6"), ""); panel.add(new JButton("Button 7"), ""); panel.add(new JButton("Button 8"), "wrap"); panel.add(new JButton("Button 9"), "cell 3 2"); // 列と行指定 |
特に便利なのは、セル内のコンポーネントのサイズ調整と位置調整!
サイズは
・セルいっぱいに: grow
・高さや幅: height, width
位置は
・横: left, center, right, etc…
・縦: top, center, bottom, etc…
を指定します。
こんなレイアウトが
これだけでできちゃいます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
JPanel panel = new JPanel(new MigLayout("", "", "")); panel.add(new JButton("☆☆ Button 1 ☆☆"), ""); panel.add(new JButton("☆☆ Button 2 ☆☆"), ""); panel.add(new JButton("☆☆ Button 3 ☆☆"), "wrap"); panel.add(new JButton("Button 4"), ""); panel.add(new JButton("Button 5"), "center"); // 中央寄せ panel.add(new JButton("Button 6"), "right, wrap"); // 右寄せ panel.add(new JButton("Button 7"), "right"); panel.add(new JButton("Button 8"), "grow"); // セルいっぱいに panel.add(new JButton("Button 9"), "grow, wrap"); panel.add(new JButton("Button10"), "grow, height 100"); // 高さを 100px に panel.add(new JButton("Button11"), "right, bottom"); // 下寄せ panel.add(new JButton("Button12"), "center"); |
Java で GUIアプリをつくるときは、是非使ってみてください。
明日は @To-Mikasa の記事です。お楽しみに!
参考サイト
Java の MiGLayout で超簡単にGUIアプリを作る方法