如何将相同的 JLabel 放置两次
How to put the same JLabel twice
我正在尝试使用 JFrame 和 JPanel 创建 "gif",但循环 "gif" 时遇到问题。
这是执行 "gif":
的代码部分
JFrame mainFrame = new JFrame("main");
mainFrame.setSize(newWidth, newHeight);
mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
for (int i = 0; i < labels.length; i++) {
mainFrame.add(labels[i]);
mainFrame.setVisible(true);
TimeUnit.SECONDS.sleep(delay);
mainFrame.remove(labels[i]);
}
它只运行一次,但当我调试时它显示它保持 运行
您需要添加
mainFrame.revalidate();
mainFrame.repaint();
在
之后
mainFrame.add(labels[i]);
及之后
mainFrame.remove(labels[i]);
此外,我想推荐您阅读有关 Event Dispatcher Thread 的内容。
我正在尝试使用 JFrame 和 JPanel 创建 "gif",但循环 "gif" 时遇到问题。 这是执行 "gif":
的代码部分 JFrame mainFrame = new JFrame("main");
mainFrame.setSize(newWidth, newHeight);
mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
for (int i = 0; i < labels.length; i++) {
mainFrame.add(labels[i]);
mainFrame.setVisible(true);
TimeUnit.SECONDS.sleep(delay);
mainFrame.remove(labels[i]);
}
它只运行一次,但当我调试时它显示它保持 运行
您需要添加
mainFrame.revalidate();
mainFrame.repaint();
在
之后mainFrame.add(labels[i]);
及之后
mainFrame.remove(labels[i]);
此外,我想推荐您阅读有关 Event Dispatcher Thread 的内容。