
No.1ベストアンサー
- 回答日時:
常にfalseが返ってくるというのは、おそらくはフレームが
まだ表示される前に呼び出しをしているからだと思います。
コンポーネント表示前にはフォーカスは当たらないので注意
が必要です。
質問である、現在のフォーカスが当たっているコンポーネント
の取得方法ですが、一番簡単なのはFocusListenerを使う方法
ではないでしょうか。
・まずはJFrameにFocusListenerを追加。
class MyFrame extends JFrame implements FocusListener{
・次に、focusGained(),focusLost()を実装。
public void focusGained(FocusEvent fe){
System.out.println(fe.getComponent().getName()+" FocusGained");
}
public void focusLost(FocusEvent fe){
System.out.println(fe.getComponent().getName()+" FocusLost");
}
実装内容は用途に合わせて変更して下さい。
・JTextFieldの初期化時の設定。
JTextField tf1, tf2, tf3 ;
tf1=new JTextField();
tf1.setName("TextField-1");
tf1.addFocusListener(this);
tf2=new JTextField();
・
・
・
とする事でフォーカス変更を調べる事が出来ると思います。
レスポンスの速さに驚きました。回答ありがとうございます。アドバイスいただいたやり方で収得できました。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JFrame{
private JTextField tf1 = new JTextField();
private JTextField tf2 = new JTextField();
public Test() {
JPanel p = new JPanel();
tf1.setName("TEST1");
tf1.addFocusListener(new FocusAdapter(){
public void focusGained(FocusEvent fe){
String name = fe.getComponent().getName();
System.out.print(name);
}
});
tf1.setPreferredSize(new Dimension(100,20));
tf1.setMaximumSize(new Dimension(100,20));
tf1.setMinimumSize(new Dimension(100,20));
p.add(tf1);
tf2.setName("TEST2");
tf2.addFocusListener(new FocusAdapter(){
public void focusGained(FocusEvent fe){
String name = fe.getComponent().getName();
System.out.print(name);
}
});
tf2.setPreferredSize(new Dimension(100,20));
tf2.setMaximumSize(new Dimension(100,20));
tf2.setMinimumSize(new Dimension(100,20));
p.add(tf2);
getContentPane().add(p, java.awt.BorderLayout.CENTER);
pack();
}
public static void main(String[] args) {
Test test = new Test();
/* 終了処理を追加 */
test.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){System.exit(0);}
});
/* 実際に表示する */
test.setVisible(true);
}
}
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- その他(プログラミング・Web制作) Pythonで複数のメソッドをまとめて管理する方法について 1 2023/03/30 00:01
- Windows 10 WindowsUpdateで再起動を阻止したいです 3 2023/03/15 22:41
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- その他(メールソフト・メールサービス) 【GAS】GMail自動送信 2 2022/09/04 06:19
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- ノートパソコン パソコンを、アップグレードした後に出来た、Cドライブの後に出来た、このドライブは? 3 2023/04/03 17:10
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでMSComm が追加できず?
-
delphi stringgrid
-
java gui のイベント処理が重い
-
画像を一瞬だけ表示する。
-
Visual Basic 2010を使ってRS-2...
-
VBSでCDトレイのオープン/ク...
-
requestFocusについて
-
[delphi] 変数を利用してコンポ...
-
フレーム上のコンポーネントの...
-
GUI画面でsetBounds()で作成し...
-
VB.NETでフォーム上にExcelのよ...
-
VB6のツールボックスへのコンポ...
-
「タイプ初期化子が例外をスロ...
-
エクセルVBAで、条件に一致する...
-
Excelで =EMBED("Acrobat Docu...
-
オブジェクト参照がオブジェク...
-
private static という変数の修飾
-
複数の変数を宣言する時、同時...
-
変数名の付け方
-
vbsでDNSサフィックスの変更を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでフォーム上にExcelのよ...
-
VB.NETでMSComm が追加できず?
-
Visual Basic 2010を使ってRS-2...
-
requestFocusについて
-
フレーム上のコンポーネントの...
-
VBSでCDトレイのオープン/ク...
-
ファイル保存先のダイアログが...
-
JButton配列でのイベント処理
-
JScrollPane上のJTableの再描画
-
Buttonの色
-
VB6のツールボックスへのコンポ...
-
文字の色の変更
-
C#で設定時刻到来時にイベント...
-
ゲーム画面(JFrame)のサイズ変...
-
ダイアログでタイトルバーを非表示
-
同じコンポーネントを複数の場...
-
モーダレスダイアログについて
-
VS2010デザイナーの読込エラー...
-
コントロールの表示・非表示
-
JTextAreaの大きさの指定と固定...
おすすめ情報