一次在面板中添加多个项目

Adding multiple items in a Panel At Once

只是一小段:)

我有

        panel8.add(label4).setVisible(true);
        panel8.add(panel4).setVisible(true);
        panel8.add(button1).setVisible(true);
        panel8.add(panel7).setVisible(true);

但我想要这样的东西:

    panel8.add(label4, panel4, button1, panel7).setVisible(true);

正确的语法是怎样的?还是不可能?

提前致谢。

您的代码的一些观察结果:

  1. 您似乎正在访问全局静态变量,这是一个禁忌
  2. 您的变量以大写字母开头,这在 Java
  3. 中是非标准的
  4. 请不要对多个面板使用数字(panel4panel8、...)。而是根据它们的含义来命名它们(例如 buttonPaneloutputPanel...)

相反,您最好为 Panel8 容器创建自定义 class,例如:

public class MyPanel extends Panel {
    public MyPanel() {
        //...instantiate label4
        add(label4);
        //...instantiate panel4
        add(panel4);
        //...instantiate button1
        add(button1);
        //...instantiate panel7
        add(panel7);
    }
}

简短的回答是,不,你不能那样做,API 不是这样设计的。

你可以创建一个可以做到这一点的实用方法,也许类似于...

public JComponent addTo(JComponent parent, JComponent... children) {
    if (children != null && children.length > 0) {
        for (JComponent child : children) {
            parent.add(child);
        }
    }
    return parent;
}

您可以使用类似...

addTo(Panel8, 
    GamulatorMain.Label4, 
    GamulatorMain.Panel4, 
    GamulatorMain.Button1, 
    GamulatorMain.Panel7).setVisible(true);

举个例子