"Calculator like"キー機能を使用して、Groovyアプリケーションで書き込もうとしています。キーボードのキー、JButtonのに焦点を当てがあるか否かノーmatther対応Groovy Swing Builderを使用したJavaキーバインド
- プレスのJButton
- プレス:だから私は呼び出されるスイングアクション、Iをしたいと思います。
ここで説明するように、おそらく最良の解決策は、Javaのキーバインディングを使用することです:GroovyとJavaを組み合わせた後 https://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html
はうまく動作するようです:
package packageSwingTest4
import groovy.swing.SwingBuilder
import javax.swing.*
import java.awt.*
import javax.swing.WindowConstants as WC
class SwingTest4 {
def static b
static void main(args) {
def swing = new SwingBuilder()
def f2Action = swing.action(name:"F2", shortDescription:"F2 button", accelerator:"F2") {
println "F2 pressed"
}
swing.edt {
def f=frame(title: 'Keborad Binding test', size:[400,300],defaultCloseOperation: JFrame.EXIT_ON_CLOSE, show: true) {
panel {
b = button(text: 'F2', actionPerformed:{println "FFFF2222 pressed"})
b.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F2"),"F2 pressed")
b.getActionMap().put("F2 pressed",f2Action)
}
}
}
}
}
しかし、私はGroovy/Javaをこのように、つまり私のように組み合わせるのは嫌いです。 - Groovyコードの構造が緩いGUI - Groovyスイングビルダの場合のように、アクションを個別に定義する必要があります。
純粋なGroovy/SwingBuilderを使用して私の問題を「よりクリーンに」解決する方法について知っていますか?私は
が助けと勧告
はい、これは私が探していた解決策です。迅速な対応をありがとう。私のsimpified最終的なコードは次のとおりです: – jirka