2016-01-29 65 views
0

我正试图制作一个程序,当用户单击该邮箱时,邮件将清除。 (必须是6-15个字符)这个东西会被清除,当它被点击时,我尝试了使用鼠标侦听器,但它不会去当我点击它。Textfield清除字符串

这里的代码片段:

abc = new JTextField(" (Must be 6-15 characters)");   
    abc.setBounds(40,130,310,30); 
    abc.setFont(new Font("Lucida Grande", Font.ITALIC, 14)); 
    abc.setForeground(Color.gray);       
    abc.addMouseListener(new MouseAdapter() { 
    public void mouseClicked(MouseEvent e) { 
     abc.setText(""); 
     } 
    }); 
    mainPanel.add(abc); 
+1

它适用于我。你是否宣布'abc'为'final'? – Hackerdarshi

回答

0

代码看起来不错。请务必@OverridemouseClicked方法和声明abcfinal

final JTextField abc = new JTextField(" (Must be 6-15 characters)");   
    abc.setBounds(40,130,310,30); 
    abc.setFont(new Font("Lucida Grande", Font.ITALIC, 14)); 
    abc.setForeground(Color.gray);       
    abc.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseClicked(MouseEvent e) { 
      abc.setText(""); 
     } 
    }); 
    mainPanel.add(abc); 
+0

它工作。我没有考虑使用final,因为我多次使用变量abc,所以我做了一个单独的。 –

+0

很高兴工作!你可以标记这个答案是正确的,也许给它一个upvote? :) – DominicEU

+0

另外我怎样才能不清除他们存储在现场,例如用户切换到另一个盒子,当他点击它时会清除它。我怎样才能实现这种方法只有一次? –