Groovy でSwingBuilderと同様の方法で Swing ベースの GUI を作成できるライブラリはありますか?
Groovy やその他の完全なプログラミング言語を Java に埋め込まずに Java GUI アプリケーションを開発したいと思っていますが、標準の Java 構文はかなり面倒です。
Groovy でSwingBuilderと同様の方法で Swing ベースの GUI を作成できるライブラリはありますか?
Groovy やその他の完全なプログラミング言語を Java に埋め込まずに Java GUI アプリケーションを開発したいと思っていますが、標準の Java 構文はかなり面倒です。
ある時点でこの道をたどった後、MiGLayoutを見つけました。分割ペインを使用していない限り、通常、各ビューを 1 つのパネルにレイアウトすることができ、手間は最小限で済みます。習得には少し時間がかかりますが、一度こぶを乗り越えれば、本当に見栄えの良い GUI をすぐに使いこなすことができます。
他のパネル内にパネルをネストするというパラダイム全体は、多くのデザインにとってきれいではありません.レイアウトマネージャーと戦うことになります.
私はそのようなライブラリを認識していませんが、同様のことが可能です (ただし、名前付きパラメーターがなくても可読性が低下します)。誰かが SwingBuilder を Java に変換した可能性があります。
[ http://kickjava.com/src/groovy/swing/SwingBuilder.java.htmで SwingBuilder の Java ソースを入手できるようです。それがどれほど最新のものかはわかりません]
プレーンなJavaで最も近いのは、「ダブルカーリートリック」を使用することです(これは実際にはトリックではなく、匿名の内部クラス定義にすぎません)。
参照ページの SwingBuilder の例:
new SwingBuilder().edt {
frame(title:'Frame', size:[300,300], show: true) {
borderLayout()
textlabel = label(text:"Click the button!", constraints: BL.NORTH)
button(text:'Click Me',
actionPerformed: {
count++;
textlabel.text = "Clicked ${count} time(s).";
println "clicked"},
constraints:BL.SOUTH)
}
}
Javaで次のように書くことができます
new JFrame() {{
setTitle("Frame");
setSize(300,300);
setLayout(new BorderLayout());
textlabel = new JLabel("Click the button!");
add(textlabel, BorderLayout.NORTH);
add(new JButton("Click Me") {{
addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
count++;
textlabel.setText("Clicked " + count + " time(s).");
System.out.println("clicked");
}});
}}, BorderLayout.SOUTH);
setVisible(true);
}};
注: ここでの問題は、
new SomeClass() {{ ... }}
実際には、新しいクラス定義を作成しています。このため、あまり頻繁に行うことはお勧めしません。