java jpanel addactionlistener_java – 没有在扩展JPanel的类内调用ActionListener

我有一个名为FrontGUI的主框架,并添加了一个侧面板.这个侧面板是一个名为FrontGUILinker的类,它扩展了JPanel,并在其上有一个按钮.当我运行程序时,按钮不会执行任何操作 – 似乎似乎没有调用ActionListener.我有其他几个具有类似设置的组件,按钮都可以使用它们 – 唯一的区别是我们可以看到它们是JFrame的扩展,它们不是FrontGUI的直接字段,而是代替下面代码中提到的maingui .这个maingui包含每个帧的Controller类,包括FrontGUIController,但FrontGUILinkerController是FrontGUIController中的一个字段.以下是我班级的概述,希望只是遗漏了无关的事情.主要的JFrame类:

public class FrontGUI extends JFrame {

public FrontGUILinker linkerPanel;

public JButton btnShowhideLinker;

public FrontGUI() {

linkerPanel = new FrontGUILinker();

contentPane.add(linkerPanel, BorderLayout.EAST);

btnShowhideLinker = new JButton("Show/Hide Linker");

contentPane.add(btnShowhideLinker);

}

}

这是它的“控制器”类.侧面板可以显示或不显示,这是这个动作监听器所做的,这似乎工作得很好.

public class FrontGUIController {

public MAINGUI maingui;

private FrontGUI frame;

public FrontGUILinkerController linkerController;

public FrontGUIController(MAINGUI parent) {

maingui = parent;

frame = new FrontGUI();

linkerController = new FrontGUILinkerController(maingui);

//Button: Show/Hide linkerPanel

frame.btnShowhideLinker.addActionListener( new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

frame.linkerPanel.setVisible(!frame.linkerPanel.isVisible());

}});

}

}

这是FrontGUILinker类:

public class FrontGUILinker extends JPanel {

public btnCreateLink;

public FrontGUILinker() {

btnCreateLink = new JButton("Create Link");

add(btnCreateLink);

}

}

这是该类的控制器:

public class FrontGUILinkerController {

public MAINGUI maingui;

private FrontGUILinker frame;

public FrontGUILinkerController(MAINGUI parent) {

maingui = parent;

frame = new FrontGUILinker();

// Add listener to Create Link button

frame.btnCreateLink.addActionListener( new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

System.out.println("Create Link button has been clicked");

}});

}

}

任何人都知道为什么这不起作用?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值