私はマウスクリックでのJTextFieldをクリアする方法を知って使用してマウスクリック時に:クリアJTextFieldが唯一のMouseListenerは、Java
JLabel jlab;
ButtonDemo() {
JFrame jfrm = new JFrame("A button example");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(500, 200);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jfrm.setVisible(true);
JTextField jtf=new JTextField("enter text here");
jtf.setName("jtf1");
jfrm.add(jtf);
jtf.addActionListener(this);
jtf.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e){
jtf.setText("");
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ButtonDemo();
}
}
);
}
}
しかし、私はのMouseListenerを使用する必要があります:
...
jtf.addMouseListener(new MListener());
...
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class MListener implements MouseListener{
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("mouseClicked " + e.paramString()+" e.getComponent().getName() -> "+e.getComponent().getName());
}
@Override
public void mousePressed(MouseEvent e) {
// switch(e.getComponent().getName())){
// case "jtf1": Here I need access to ButtonDemo jtf1 element ;
// }
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
}
はどのようにアクセスを得ることができますJTextField whisはJFrameのButtonDemoにありますか? スイッチ...ケース複数のJTextFieldが存在するため、必要です。 2番目の質問 - このアプローチは完全に悪いですか?
JTextFieldフォーカスリスナーは、あなたのケースでうまくいくでしょうか? – Tin
上記の文を明確にするために、マウスとキーボードの両方の使用のためにGUIを設計する必要があります。したがって、ユーザーがテキストフィールドに「クリック」または「タブ」した場合は、テキストをクリアする必要があります。そのため、FocusListenerを使用する必要があります。 – camickr