
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を探す
今、見られている記事はコレ!
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでMSComm が追加できず?
-
delphi stringgrid
-
VB.NETでフォーム上にExcelのよ...
-
ファイル保存先のダイアログが...
-
Visual Studio.NETについて
-
Visual Basic 2010を使ってRS-2...
-
モーダレスダイアログについて
-
GUI画面でsetBounds()で作成し...
-
VBSでCDトレイのオープン/ク...
-
[delphi] 変数を利用してコンポ...
-
VB6のツールボックスへのコンポ...
-
JButton配列でのイベント処理
-
子パネルから親パネルのコント...
-
「タイプ初期化子が例外をスロ...
-
Excelで =EMBED("Acrobat Docu...
-
エクセルVBAで、条件に一致する...
-
オブジェクト参照がオブジェク...
-
private static という変数の修飾
-
変数名の付け方
-
エクセルVBA 画像を貼り付ける...
マンスリーランキングこのカテゴリの人気マンスリー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の大きさの指定と固定...
おすすめ情報