dポイントプレゼントキャンペーン実施中!

少し前からJavaの勉強を始めて、今JAppletを使用してるのですが、タイトル通り、JBottunを設置するとKeyAdapater上手く作動しません。
スペースキーを押すと、ボタンが押されるようなので、キー入力がボタンの方に行ってしまうようなのです・・・。

キー入力とボタン入力を別々に独立して作動させる事は可能でしょうか。

例えば、キーボードから入力した文字をラベルに表示し、ボタンを押したらラベルに「ボタンが押されました」といった具合にしたいのです。

初心者故に説明不足かつ初歩的な質問かと思いますが、どうかよろしくおねがいします。

A 回答 (2件)

追加で必要なのは requestFocusInWindow(); です。


ボタンを先に押す必要がありますが動きます。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class sample extends JApplet
{
private JLabel lb,lb2;
private JButton bt;
private int counter = 0;

public void init(){
Container cnt=getContentPane();
//Container cnt2=getContentPane();
lb=new JLabel("ラベルです");
lb2=new JLabel("ここに入力されたキーが表示されます");
bt=new JButton("ボタン");
cnt.add(lb,BorderLayout.SOUTH);
cnt.add(lb2,BorderLayout.CENTER);
cnt.add(bt,BorderLayout.NORTH);
addKeyListener(new key());
bt.addActionListener(new but());

}





class key extends KeyAdapter {

public void keyPressed(KeyEvent e)
{

char a=e.getKeyChar();
lb2.setText(a+"が入力されました");


}
}

class but implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
counter = counter + 1;
lb.setText(counter + "回ボタンを押しました");
requestFocusInWindow();
}
}
}
    • good
    • 0
この回答へのお礼

おおすごい!ボタンを使用しつつキー入力ができる理想形です。
これを参考にして今作ってるプログラムを完成させていただこうと思います。

ありがとうございました。

お礼日時:2009/04/21 07:55

症状を再現できる短いサンプルプログラムのコードを投稿してください。

ふつうは、スペースキーを押すとボタンのクリックになる、なんてことはありえません。

この回答への補足

http://www1.axfc.net/uploader/File/so/21821
こんな感じのソースです。
自分ではどこが間違っているのかよく分かりませんでした・・・。

補足日時:2009/04/20 08:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!