少し前からJavaの勉強を始めて、今JAppletを使用してるのですが、タイトル通り、JBottunを設置するとKeyAdapater上手く作動しません。
スペースキーを押すと、ボタンが押されるようなので、キー入力がボタンの方に行ってしまうようなのです・・・。
キー入力とボタン入力を別々に独立して作動させる事は可能でしょうか。
例えば、キーボードから入力した文字をラベルに表示し、ボタンを押したらラベルに「ボタンが押されました」といった具合にしたいのです。
初心者故に説明不足かつ初歩的な質問かと思いますが、どうかよろしくおねがいします。
No.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();
}
}
}
おおすごい!ボタンを使用しつつキー入力ができる理想形です。
これを参考にして今作ってるプログラムを完成させていただこうと思います。
ありがとうございました。
No.1
- 回答日時:
症状を再現できる短いサンプルプログラムのコードを投稿してください。
ふつうは、スペースキーを押すとボタンのクリックになる、なんてことはありえません。この回答への補足
http://www1.axfc.net/uploader/File/so/21821
こんな感じのソースです。
自分ではどこが間違っているのかよく分かりませんでした・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- その他(AV機器・カメラ) 至急!Panasonicのリモコンを使ってるのですが、電源ボタンなどや音量ボタン入力切り替えのボタン 3 2022/06/02 14:43
- その他(パソコン・周辺機器) 呪われた様な.......様々な不具合について 2 2022/08/26 15:52
- ノートパソコン シャットダウンを止めるには 1 2022/09/11 14:36
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- gooブログ Twitterの動画画面をgooブログに埋め込めない 4 2022/06/03 16:40
- Mac OS Macで Microsoft Remote Desktop を使うとキーボードの配列が変わってしまう 1 2022/08/08 17:27
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java junit list同士の比較方法
-
VBAの繰り返し処理表記と複数の...
-
JavaでのSwingを使った簡易電卓...
-
javaで文字数制限するには?
-
cadで作った図面をフレーム上で...
-
JTable の 列幅を個別に設定す...
-
JButton-背景の透明化
-
JPanelの重ね方/OverlayLayout他
-
Java-Swing TextAreaにスクロー...
-
JOptionPaneでのフォーカスのト...
-
KeyListenerの使い方について
-
最後の行に移動するには?
-
整数を好きなだけ入力し、個数...
-
JTableの列ヘッダ
-
setPrefferedSizeとsetSize
-
java 一意の値を取り出す方法
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
Log4jで機能毎に別ファイルへ出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JPanelの切り替えと再描画
-
連番をオブジェクト名の最後に...
-
JPanelの重ね方/OverlayLayout他
-
JavaのswingでCardLayoutの画面...
-
JavaでのSwingを使った簡易電卓...
-
ArrayListの使い方について(初...
-
4択クイズでのランダム出題の...
-
KeyListenerの使い方について
-
JDialogを閉じた時の処理
-
BMI測定を作ろうとしている...
-
TextAreaでの文字の色
-
EXECLの行を削除
-
Java-Swing TextAreaにスクロー...
-
setPrefferedSizeとsetSize
-
【Swing】JPanel クラス外から...
-
最後の行に移動するには?
-
あるコンボボックスを選択する...
-
JButton-背景の透明化
おすすめ情報