展开全部
你的jl1没放到jp1中,放到了JFrame中,所以jp1.remove(jl1);应该改成this.remove(jl1);
另外,改完后,要重新布置一62616964757a686964616fe4b893e5b19e31333361303130下JFrame中的组件,用this.validate();
你的程序我帮你改完了,你看看吧。(改动的地方见注释)import java.awt.*;
import javax.swing.*;
public class Hello_2 extends JFrame{
JLabel jl1;
JLabel jl2;
JPanel jp1;
public static void main(String[] args) {
Hello_2 hello=new Hello_2();
}
public Hello_2()
{
jp1=new JPanel();
jl1=new JLabel(new ImageIcon("images/001.png"));
this.add(jl1);
this.setSize(420, 430);
this.setLocationRelativeTo(null);
// 窗口居中显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//关闭程序
this.setVisible(true);
this.remove(jl1);//这里jp1.remove(jl1);改成this.remove(jl1);
jl2=new JLabel(new ImageIcon("images/002.png"));
this.add(jl2);
this.validate();//这里让JFrame容器再次布置其子组件
//repaint();
//我想让界面显示过001.png后再显示002.png ,可是为什么只显示001.png?
}
}