当一个按钮按上的时候图片显示,但是反映很慢,按几次的时候才能显示出来! public void actionPerformed(ActionEvent e)
{
String act=e.getActionCommand().toLowerCase();
if(act.equals("ok"))
{
if(labImgName.getText().equals(""))
{
msgBox("Select one Picture!");
}
else{
Graphics g=getGraphics();
Image img=tk.getDefaultToolkit().getImage(labImgName.getToolTipText());
g.drawImage(img,100,100,800,800,this);
}
}
我用了菜单打开一个图片的时候,在窗体上显示图片,但什么图片都显示不出来,请高手帮我看看!
谢谢
if(act.equals("open"))
{
JFileChooser chooser=new JFileChooser();
int t=chooser.showOpenDialog(this);
if(t==chooser.APPROVE_OPTION)
{
File f=chooser.getSelectedFile();
if(imgType(f.getPath())==true)
{
Graphics g=getGraphics();
Image img=tk.getDefaultToolkit().getImage(f.getPath());
g.drawImage(img,100,100,600,600,this);
labImgName.setText(f.getName());
labImgName.setToolTipText(f.getPath());

}else
{
msgBox("Image Type is Error!");
}

}
}---------------
按一个按钮的时候,反映很慢,有时候按一次就显示图片了,有时候按几次才能显示出来!

解决方案 »

  1.   

    第一个问题不是反映慢,而是加载图片需要时间
    第二个问题:
    g.drawImage(img,100,100,600,600,this);
    不能在你当前的代码范围里使用,而应该放在超载的paintComponent(Graphics g)方法里。
      

  2.   

    第一个问题是因为把图片从硬盘加载到内存中需要时间,你可以考虑用线程做。
    第二个问题中的g.drawImage(img,100,100,600,600,this);语句不能写在事件处理中,可以写在一个JPanel类中,然后加载到JFrame中。