public class PhoneApplet extends JApplet{
JTextArea lcdcontent = new JTextArea();
JLabel starLabel=new JLabel();
.....public void paint(Graphics g){starLabel.setIcon(new ImageIcon(getClass().getResource("images/star.gif")));
starLabel.setBounds(new Rectangle(163,445,66,48));
starLabel.addMouseListener(new buttonStarAdapter(this));lcdcontent.setBounds(new Rectangle(180,58,298,60));
lcdcontent.setOpaque(false);
lcdcontent.setFont(new Font("SansSerif",Font.BOLD,19));this.getContentPane().add(lcdcontent, null);
this.getContentPane().add(starLabel, null);
}
....
}class buttonStarAdapter extends MouseAdapter{
PhoneApplet phoneApplet;
public buttonStarAdapter(PhoneApplet phoneApplet){
this.phoneApplet=phoneApplet;
}
public void mouseClicked(MouseEvent me){
if(phoneApplet.isShowClock){
phoneApplet.isShowClock=false;
phoneApplet.lcdcontent.setText("*");
}else{
phoneApplet.lcdcontent.append("*");
}

}
}现在问题是,每次点击*按钮后, 会在JTextArea里显示两个"*", 我是想让它在原来的text上增加一个"*", 但是现在他每次增加两个!请问该怎么办?

解决方案 »

  1.   

    starLabel.setIcon(new ImageIcon(getClass().getResource("images/star.gif")));
    starLabel.setBounds(new Rectangle(163,445,66,48));
    starLabel.addMouseListener(new buttonStarAdapter(this));lcdcontent.setBounds(new Rectangle(180,58,298,60));
    lcdcontent.setOpaque(false);
    lcdcontent.setFont(new Font("SansSerif",Font.BOLD,19));this.getContentPane().add(lcdcontent, null);
    this.getContentPane().add(starLabel, null);把这些都放到构造方法里面去