我创建了一个创建面板的类,并在构造函数中传递了一个附加了动作侦听器的按钮。这是按钮的代码:
JButton back = new JButton("Back");
back.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
menus.show(contentPane, "Main");
}
});
然后将其传递给构造函数,如下所示:
lightsPane = new lightsPane(back).contents;
tasksPane = new Tasks(tasksBack).contents;
tvPane = new TV(tvBack).contents;
在类中,按钮被添加到 JPanel,然后 JPanel 被添加到内容中。像这样:
public class lightsPane{
JPanel contents;
lightsPane(JButton back){
contents = new JPanel(new BorderLayout);
//add back button to lower right of panel
JPanel backPane = new JPanel();
backPane.setLayout(new BorderLayout());
backPane.add(back, BorderLayout.CENTER);
contents.add(backPane, BorderLayout.SOUTH);
}
}
我知道构造函数工作正常,因为当我在其中创建一个按钮以添加到它显示的内容时,它显示得很好。这里发生了什么?我可以将此按钮传递给构造函数吗?如果可以,为什么不显示?