java – 当鼠标点击JTextField时如何清除JTextField

前端之家收集整理的这篇文章主要介绍了java – 当鼠标点击JTextField时如何清除JTextField前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当鼠标点击该文本字段时,我需要使该程序从文本字段中清除文本.我已经尝试了一些事情,但是他们都没有为我工作.

以下是代码全部:

  1. public class TimerClassPanel extends JFrame implements MouseListener{
  2.  
  3. public TimerClassPanel(){
  4. setTitle("Timer Class");
  5. setSize(WIDTH,HEIGHT);
  6.  
  7. timer = new Timer(DELAY,new TimerEventHandler());
  8.  
  9. pane = getContentPane();
  10. pane.setLayout(null);
  11.  
  12. int r = (int)(9.0 * Math.random()) + 1;
  13. String str2 = Integer.toString(r);
  14.  
  15. label = new JLabel(str2,SwingConstants.CENTER);
  16. label.setSize(150,30);
  17. label.setLocation(0,0);
  18.  
  19. textField = new JTextField();
  20. textField.setSize(150,30);
  21. textField.setLocation(150,0);
  22.  
  23. startB = new JButton("Start");
  24. startbh = new StartButtonHandler();
  25. startB.addActionListener(startbh);
  26. startB.setSize(100,30);
  27. startB.setLocation(0,30);
  28.  
  29. stopB = new JButton("Stop");
  30. stopbh = new StopButtonHandler();
  31. stopB.addActionListener(stopbh);
  32. stopB.setSize(100,30);
  33. stopB.setLocation(100,30);
  34.  
  35. exitB = new JButton("Exit");
  36. ebHandler = new ExitButtonHandler();
  37. exitB.addActionListener(ebHandler);
  38. exitB.setSize(100,30);
  39. exitB.setLocation(200,30);
  40.  
  41. pane.add(label);
  42.  
  43. pane.add(textField);
  44. pane.add(startB);
  45. pane.add(stopB);
  46. pane.add(exitB);
  47.  
  48. timer = new Timer(DELAY,new TimerEventHandler());
  49.  
  50. setVisible(true);
  51. setDefaultCloSEOperation(EXIT_ON_CLOSE);
  52. }
  53.  
  54. private class TimerEventHandler implements ActionListener{
  55. public void actionPerformed(ActionEvent e){
  56. int r = (int)(9.0 * Math.random()) + 1;
  57. String str = Integer.toString(r);
  58. currentNum = "";
  59. currentNum = str;
  60. label.setText(str);
  61. repaint();
  62. }
  63. }
  64.  
  65. public class StartButtonHandler implements ActionListener{
  66. public void actionPerformed(ActionEvent e){
  67. timer.start();
  68. }
  69. }
  70.  
  71. public class StopButtonHandler implements ActionListener{
  72. public void actionPerformed(ActionEvent e){
  73. timer.stop();
  74. }
  75. }
  76.  
  77. private class ExitButtonHandler implements ActionListener{
  78. public void actionPerformed(ActionEvent e){
  79. System.exit(0);
  80. }
  81. }
  82.  
  83. public static void main(String[] args){
  84. TimerClassPanel timerPanel = new TimerClassPanel();
  85. JOptionPane.showMessageDialog(null,"Type your guess (int between 1-9)" +
  86. " in the field then press 'ENTER'");
  87. }
  88.  
  89. @Override
  90. public void mouseClicked(MouseEvent e) {
  91. if( e.getX() > 150 && e.getX() < 300 && e.getY() > 0 && e.getY() < 30)
  92. {
  93. textField.setText("");
  94. repaint();
  95. }
  96. }
  97.  
  98. @Override
  99. public void mouseEntered(MouseEvent arg0) {
  100. // TODO Auto-generated method stub
  101.  
  102. }
  103.  
  104. @Override
  105. public void mouseExited(MouseEvent arg0) {
  106. // TODO Auto-generated method stub
  107.  
  108. }
  109.  
  110. @Override
  111. public void mousePressed(MouseEvent arg0) {
  112. // TODO Auto-generated method stub
  113.  
  114. }
  115.  
  116. @Override
  117. public void mouseReleased(MouseEvent arg0) {
  118. // TODO Auto-generated method stub
  119.  
  120. }
  121. }

解决方法

TL; DR

无论如何,注册MouseAdapter并覆盖mouseClicked为我工作,

  1. import java.awt.FlowLayout;
  2. import java.awt.event.MouseAdapter;
  3. import java.awt.event.MouseEvent;
  4. import javax.swing.JFrame;
  5. import javax.swing.JTextField;
  6. import javax.swing.SwingUtilities;
  7.  
  8. public class ClickAndClearDemo {
  9. private static void createAndShowGUI(){
  10. JFrame frame = new JFrame();
  11. frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
  12. frame.setLayout(new FlowLayout(FlowLayout.CENTER,20,20));
  13.  
  14. final JTextField textField = new JTextField("Enter text here...");
  15. textField.addMouseListener(new MouseAdapter(){
  16. @Override
  17. public void mouseClicked(MouseEvent e){
  18. textField.setText("");
  19. }
  20. });
  21.  
  22. frame.add(textField);
  23. frame.pack();
  24. frame.setVisible(true);
  25. }
  26.  
  27. public static void main(String[] args) {
  28. SwingUtilities.invokeLater(new Runnable(){
  29. @Override
  30. public void run() {
  31. createAndShowGUI();
  32. }
  33. });
  34. }
  35. }

我希望这个例子让你从正确的方向开始!

猜你在找的Java相关文章