为什么我用java写的个显示图片的程序,要按两下按钮才能显示图片。
为什么我用java写的个显示图片的程序,要按两下按钮才能显示图片。package TEXT;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JApplet;
public class TX extends JApplet implements ActionListener{
public JButton Button1;
public JPanel Imgepanel, panel1;
public void init()// 界面的初始化
{
resize(800, 650);//窗口大小
Container c = getContentPane();// 容器
c.setLayout(new BorderLayout());// 容器布局
Button1=new JButton("转换");
panel1=new JPanel();// 容器面板
panel1.setLayout(new FlowLayout());// 格式布局
panel1.add(Button1);
Imgepanel=new JPanel();
c.add(panel1, BorderLayout.NORTH);
c.add(Imgepanel, BorderLayout.CENTER);
Button1.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
Graphics g = Imgepanel.getGraphics();
Image image = getImage(getCodeBase(),"冬.jpg"); //得到一个图片(冬天)
g.drawImage(image, 0, 0, this);
}
}
--------------------编程问答-------------------- 猜测是加载图像的时候出了问题,在倒数第四行写
System.out.println("height:"+image.getHeight(this));
然后运行,可以发现点击第一次时,控制台输出-1,第二次以后才是图像的高度
而且一改变窗口大小或是切换画面,图像都不见了。
具体原因我也不知道,坐等高手出现。 --------------------编程问答-------------------- 图片加载会处理两次,第一次加载到pvm虚拟机里,然后再从虚拟机里面读取,可以提前加载,不过我忘了是哪个类了,明天有空帮你查下
补充:Java , Eclipse