【问题标题】:Component passed to constructor doesn't display传递给构造函数的组件不显示
【发布时间】:2023-04-06 22:20:01
【问题描述】:

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

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

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

【问题讨论】:

  • What's going on here? -> 完全不知道。你是来这里问一些问题的吗?我想你忘记了。
  • 我建议把你所有的代码放在这里看看有什么问题。
  • 是的...您可以将此按钮传递给构造函数
  • @shadowmaster13 没办法,不知道,为了更好的帮助,请尽快发布关于 JButtons 问题的简短、可运行、可编译和截断的 SSCCE
  • 在阅读有关 CardLayout 的教程之前,请在此论坛上查找相关示例(使用 CardLayout 标签)

标签: java swing user-interface components


【解决方案1】:

如果使用得当,通过构造函数传递JButton 并没有错。该类要么根本不使用它,要么正在使用它,但以一种非常有用的方式。

【讨论】:

    【解决方案2】:

    是的,您可以在传递在另一个类中使用的引用时将按钮传递给构造函数,这非常好。

    【讨论】:

    • 接下来你想要什么,从你问的问题中看不清楚
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多