[英]Invoke method from ActionListener
我想要一个按钮,当按下该按钮时,将调用一个方法。 这是一些代码
public class Tester extends JPanel {
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillRect(10, 10, 10, 10);
}
//The method which I wand invoke but can't, I don't know why.
void setWidth(){
//width -= 10 ;
repaint();
}
public static void main(String[] args) {
//Here some JFrame...
Tester paint = new Tester();
frame.add(paint);
JButton click = new JButton("Click");
click.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
paint.setWidth();//Here I Want invoke that method
}
});
}
}
我希望ActionListener
会调用方法setWidth()
,但不会。 不知道为什么。
paint变量不在匿名ActionListener类的范围内,请尝试更改paint类以使其实现ActionListener接口,并使其实例成为“ Click”按钮的动作侦听器,还应将该按钮附加到面板实例上,如下所示:
public class Tester extends JPanel implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
setWidth();
}
public static void main(String[] args) {
//Here some JFrame...
Tester paint = new Tester();
frame.add(paint);
JButton click = new JButton("Click");
paint.add(click);
click.addActionListener(paint);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.