这还有一道java 程序题,请高手指教
importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassTestActionEven...
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestActionEvent extends JFrame implements ActionListener
{
private JButton jbtok=new JButton("确定");
private JButton jbtCancel=new JButton("取消");
public TestActionEvent(String title)
{
super(title);
getContentPane().setLayout(new FlowLayout());
getContentPane().add(jbtok);
getContentPane().add(jbtCancel);
jbtCancel.addActionListener(this);
jbtok.addActionListener(this);
}
public static void main(String[] args)
{
TestActionEvent frame=new TestActionEvent("冯良军");
frame.setSize(900,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jbtok)
{
System.out.println("确定按钮已经被点");
}
else if(e.getSource()==jbtCancel)
{
System.out.println("取消按钮已经被点");
}
}
}
问题补充:如果将private JButton jbtok=new JButton("确定");
private JButton jbtCancel=new JButton("取消");
这个代码拿到public TestActionEvent(String title)
这个方法里为什么就不对了
还有if里面的条件怎么会是e.getSource()==jbtok
还有public void actionPerformed(ActionEvent e)
这个方法里面条件为什么会是ActionEvent e
这个程序没有怎么看懂,请高手指教,多谢了 展开
import javax.swing.*;
import java.awt.event.*;
public class TestActionEvent extends JFrame implements ActionListener
{
private JButton jbtok=new JButton("确定");
private JButton jbtCancel=new JButton("取消");
public TestActionEvent(String title)
{
super(title);
getContentPane().setLayout(new FlowLayout());
getContentPane().add(jbtok);
getContentPane().add(jbtCancel);
jbtCancel.addActionListener(this);
jbtok.addActionListener(this);
}
public static void main(String[] args)
{
TestActionEvent frame=new TestActionEvent("冯良军");
frame.setSize(900,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jbtok)
{
System.out.println("确定按钮已经被点");
}
else if(e.getSource()==jbtCancel)
{
System.out.println("取消按钮已经被点");
}
}
}
问题补充:如果将private JButton jbtok=new JButton("确定");
private JButton jbtCancel=new JButton("取消");
这个代码拿到public TestActionEvent(String title)
这个方法里为什么就不对了
还有if里面的条件怎么会是e.getSource()==jbtok
还有public void actionPerformed(ActionEvent e)
这个方法里面条件为什么会是ActionEvent e
这个程序没有怎么看懂,请高手指教,多谢了 展开
1个回答
展开全部
因为把private JButton jbtok=new JButton("确定");
private JButton jbtCancel=new JButton("取消");放到public TestActionEvent(String title)里面就相当于这两个按钮是局部变量,只能在这个方法里面使用。actionPerformed里面就不可以使用了。还有就是函数内不能定义private变量,局部变量(方法内定义的变量)本身的作用域就是本方法内,访问控制修饰符是没必要的,何况局部变量不能用private等访问控制符修饰的。再说在函数之内定义的变量的作用域只在本函数内了, 已经有了很好的封装性, 所以不需要private了。
if里面的条件是e.getSource()==jbtok是用来判断谁出发了事件。jbtok就是触发事件的源。
public void actionPerformed(ActionEvent e)是java已经封装好的事件响应方法。触发一个事件后会产生一个ActionEvent事件,然后传给actionPerformed方法由其对这个事件e进行处理。
private JButton jbtCancel=new JButton("取消");放到public TestActionEvent(String title)里面就相当于这两个按钮是局部变量,只能在这个方法里面使用。actionPerformed里面就不可以使用了。还有就是函数内不能定义private变量,局部变量(方法内定义的变量)本身的作用域就是本方法内,访问控制修饰符是没必要的,何况局部变量不能用private等访问控制符修饰的。再说在函数之内定义的变量的作用域只在本函数内了, 已经有了很好的封装性, 所以不需要private了。
if里面的条件是e.getSource()==jbtok是用来判断谁出发了事件。jbtok就是触发事件的源。
public void actionPerformed(ActionEvent e)是java已经封装好的事件响应方法。触发一个事件后会产生一个ActionEvent事件,然后传给actionPerformed方法由其对这个事件e进行处理。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询