只是一个简短的:))
我有
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);
语法是否正确?或者不可能?
提前致谢。
答案 0 :(得分:2)
您的代码中的一些观察结果:
panel4
,panel8
,...)。而是根据它们的名称命名它们(例如buttonPanel
,outputPanel
...)相反,您最好为Panel8
容器创建自定义类,例如:
public class MyPanel extends Panel {
public MyPanel() {
//...instantiate label4
add(label4);
//...instantiate panel4
add(panel4);
//...instantiate button1
add(button1);
//...instantiate panel7
add(panel7);
}
}
答案 1 :(得分:2)
简短的回答是,不,你不能这样做,这不是API的设计方式。
您可以创建一个可以执行此操作的实用程序方法,可能类似于......
addTo(Panel8,
GamulatorMain.Label4,
GamulatorMain.Panel4,
GamulatorMain.Button1,
GamulatorMain.Panel7).setVisible(true);
你可以使用像...这样的东西。
#!/bin/bash
# Retries a command on failure.
# $1 - the max number of attempts
# $2... - the command to run
retry() {
local -r -i max_attempts="$1"; shift
local -r cmd="$@"
local -i attempt_num=1
until $cmd
do
if ((attempt_num==max_attempts))
then
echo "Attempt $attempt_num failed and there are no more attempts left!"
return 1
else
echo "Attempt $attempt_num failed! Trying again in $attempt_num seconds..."
sleep $((attempt_num++))
fi
done
}
# example usage:
retry 5 ls -ltr foo
作为例子