【发布时间】:2013-10-22 20:49:35
【问题描述】:
我有一个 JFrame,东西两个按钮,北标签,南标签和文本字段。和一个图像在中心。我想在中心 30 秒后调用另一个图像。但是每次我调用第二张图片时,北、南、东、西的组件都在消失。
这是我的代码。 //JFrame中的组件。
firstPicblur = new JPanel(new BorderLayout());
pictureblur01 = new ImageIcon("C:\\java pics\\papsi2.jpg");
pictureblurA = new JLabel(pictureblur01);
firstPicblur.add(pictureblurA,BorderLayout.CENTER);
//FirstPicture blurred B
firstPicblurB = new JPanel(new BorderLayout());
pictureblur02 = new ImageIcon("C:\\java pics\\papsi1.jpg");
pictureblurB = new JLabel(pictureblur02);
firstPicblurB.add(pictureblurB,BorderLayout.CENTER);
//Next0Prev buttons
Next0Prev = new JPanel(new BorderLayout());
Next = new JButton("NEXT");
Prev = new JButton("PREV");
//Next0Prev labels is constant at SOUTH
firstPicblurA = new JPanel(new BorderLayout());
clueNo1 = new JLabel("Picture Number 01");
TypeHere = new JTextField("Guess Who");
firstPicblurA.add(TypeHere, BorderLayout.CENTER);
firstPicblurA.add(clueNo1, BorderLayout.SOUTH);
Next0Prev.add(firstPicblur,BorderLayout.CENTER);
Next0Prev.add(Next,BorderLayout.EAST);
Next0Prev.add(Prev,BorderLayout.WEST);
Next0Prev.add(firstPicblurA,BorderLayout.SOUTH);
//其他组件
这就是actionEvent
if(e.getSource() == continueButton){
add(Next0Prev);
Next0Prev.setVisible(true);
Next0Prev.repaint();
Next0Prev.revalidate();
loadingEffectBtn.setVisible(false);
Timer ta = new Timer(10000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
add(firstPicblurB);
firstPicblurB.setVisible(true);
Next0Prev.setVisible(true);
}
});
ta.start();
ta.setRepeats(true);
}
但是当我这样做时。第二张图片出现在中间,但 N、E、W、S 分量正在消失。
【问题讨论】:
-
不是所有的功能都被添加到
Next0Prev,我假设它被添加到你的主窗口。但是您还要在框架中添加firstPicblurB...? -
你为什么不只有一个图片标签并更改图片,而不是两个单独的图片标签?
-
如需尽快获得更好的帮助,请发布SSCCE。例如,获取图像的一种方法是热链接到this answer 中看到的图像。有关工作示例,另请参阅
ImageViewer。 -
是的,第一张图片是第二张图片。但我不知道我做得对不对。
-
@AndrewThompson 是的,我会的。