を使用しJPanel
て追加し、フォーカス可能JComponents
に設定しようとしたため、ユーザーが をクリックすると、選択が解除され、そのリスナーが呼び出されます。これについて質問されたほとんどすべての Q&A を読みましたが、うまくいくものは見つかりませんでした。それで私は考えました:私が使用できる別のコンテナはありますか?JPanel
JPanel
JComponent
JComponent
質問する
362 次
2 に答える
2
やってみましたpanel.requestFocus();
か?JPanel
はサブクラスなので、Component
このメソッドを呼び出すこともできます。これは、特定の瞬間にそれを持っているものから焦点を合わせます。
編集:
これが機能していることを示すコードサンプルです。
import java.awt.Dimension;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class PanelOnClickGrabFocus {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel p = new JPanel();
p.setPreferredSize(new Dimension(400, 400));
JTextField tf = new JTextField(34);
p.add(tf);
f.setContentPane(p);
f.pack();
f.setVisible(true);
p.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
p.requestFocus();
}
});
}
});
}
}
于 2012-06-14T12:56:38.893 に答える
1
インターフェイスを実装する任意のコンテナーを使用できると思いFocusListener
ます。独自に作成するか、ドキュメントに記載されている既知の実装されたインターフェイスで使用します。
http://docs.oracle.com/javase/6/docs/api/java/awt/event/FocusListener.html
于 2012-06-14T12:53:40.330 に答える