5

まず、私の仕事の説明を少し簡単にするために、私のコードの一部を次に示します。

JSpinner spin = new JSpinner();
JFormattedTextField text = getTextField(spin);

text.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
            // Do stuff...
    }
});

...

private JFormattedTextField getTextField(JSpinner spinner) {
    JComponent editor = spinner.getEditor();

    if (editor instanceof JSpinner.DefaultEditor) {
        return ((JSpinner.DefaultEditor )editor).getTextField();
    } else {
        System.err.println( "Unexpected editor type: "
                           + spinner.getEditor().getClass()
                           + " isn't a descendant of DefaultEditor" );
        return null;
    }
}

ご覧のとおり、ここまで来ました。実際、スピナー ( ) のテキスト フィールド コンポーネントに値を入力してJFormattedTextFieldEnter キーを押すと、機能します。

私が今欲しいのは、新しい値を手動で入力しなくても、テキスト フィールドが ENTER に応答できるようにすることです (これは、スピナーを作成する目的を無効にします)。それ、どうやったら出来るの?

4

2 に答える 2

5

これがアクションリスナーではないことはわかっています...しかし、これはあなたのために働くことができますか?


    text.addKeyListener( new KeyAdapter() {
            @Override
            public void keyReleased( final KeyEvent e ) {
                if ( e.getKeyCode() == KeyEvent.VK_ENTER ) {
                    System.out.println( "enter pressed" );
                }
            }
        } );

于 2008-12-19T00:15:14.507 に答える