【发布时间】:2015-04-06 16:19:27
【问题描述】:
我想在按钮按下时创建一个数组的 JLabel。我从未用数组做过什么,所以也许这是某种训练。我试过了,但它不起作用。预期结果:每次我按下按钮时,都会创建 20 个 JLabel 之一。 这是我的课:
public class JLabelArray {
static JFrame frame;
static JButton button;
public static void main(String[] args) {
final JLabel[] label = new JLabel[20];
//
button = new JButton("push me");
button.setBounds(0, 0, 100, 30);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// This is where a new JLabel should be created
for (int i = 0; i < label.length; i++) {
label[i] = new JLabel("Label" + i);
label[i].setBounds(button.getX(), button.getY()+ 10 + i * 15, 50, 50);
frame.add(label[i]);
frame.revalidate();
frame.repaint();
}
}
});
//
frame = new JFrame();
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
frame.setVisible(true);
frame.add(button);
}
}
编辑:更新代码
EDIT2:更新了 for 循环
EDIT3:我修改了整个问题
【问题讨论】:
-
添加标签后,您需要
validate()您的容器。来自documentation:“布局相关的变化,比如设置组件的边界,或者将组件添加到容器中,自动使容器失效”
标签: java arrays swing jbutton jlabel