一次在面板中添加多个项目
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);
正确的语法是怎样的?还是不可能?
提前致谢。
您的代码的一些观察结果:
- 您似乎正在访问全局静态变量,这是一个禁忌
- 您的变量以大写字母开头,这在 Java
中是非标准的
- 请不要对多个面板使用数字(
panel4
、panel8
、...)。而是根据它们的含义来命名它们(例如 buttonPanel
、outputPanel
...)
相反,您最好为 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);
举个例子
只是一小段:)
我有
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);
正确的语法是怎样的?还是不可能?
提前致谢。
您的代码的一些观察结果:
- 您似乎正在访问全局静态变量,这是一个禁忌
- 您的变量以大写字母开头,这在 Java 中是非标准的
- 请不要对多个面板使用数字(
panel4
、panel8
、...)。而是根据它们的含义来命名它们(例如buttonPanel
、outputPanel
...)
相反,您最好为 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);
举个例子