java中 如何跨类使用组件(参数)
例如:publicclassarmFrameextendsJFrame{//图形界面类privatevoidshowFrame(){JButtonmain_but1=ne...
例如:
public class armFrame extends JFrame{ //图形界面类
private void showFrame() {
JButton main_but1=new JButton("按钮“); //new按钮组件
main_but1.addActionListener(new actEvent()); //注册组件
}
}
public class actEvent implements ActionListener { //事件类
public void actionPerformed(ActionEvent e) {
if(e.getSource()==main_but1) //错误现象:main_but1在actEvent中不能使用
{……}
}
}
问题:在actEvent中如何使用main_but1按钮 展开
public class armFrame extends JFrame{ //图形界面类
private void showFrame() {
JButton main_but1=new JButton("按钮“); //new按钮组件
main_but1.addActionListener(new actEvent()); //注册组件
}
}
public class actEvent implements ActionListener { //事件类
public void actionPerformed(ActionEvent e) {
if(e.getSource()==main_but1) //错误现象:main_but1在actEvent中不能使用
{……}
}
}
问题:在actEvent中如何使用main_but1按钮 展开
2个回答
展开全部
1 通过构造函数传递一个窗体的 引用
2 通过方法传递一个窗体的 引用
如下 构造函数:
import javax.swing.JButton;
import javax.swing.JFrame;
public class MainFrame extends JFrame { // 图形界面类
public JButton main_but1 = new JButton("按钮");
private void showFrame() {
main_but1.addActionListener(new ActEvent(this)); // 注册组件
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ActEvent implements ActionListener { // 事件类
private MainFrame mainFrame;
public ActEvent(MainFrame mainFrame) {
this.mainFrame = mainFrame;
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == this.mainFrame.main_but1) {
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询