传递给构造函数的组件不会显示

时间:2012-10-25 05:18:00

标签: java swing user-interface components

我创建了一个创建面板的类,在构造函数中我传递了一个附加了动作侦听器的按钮。 这是按钮的代码:

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);
       }
 }

我知道构造函数正常工作,因为当我在其中创建一个按钮添加到内容时它显示正常。这里发生了什么?我可以将此按钮传递给构造函数吗?如果我能为什么不显示呢?

2 个答案:

答案 0 :(得分:0)

是的,您可以将一个按钮传递给构造函数,因为您传递的引用在另一个类中使用它完全没问题。

答案 1 :(得分:0)

如果正确使用JButton通过构造函数,则没有任何问题。这个类要么根本不使用它,要么正在使用它,但是以巨大的方式使用它。