当第一次打开图片时,主窗体大小变成(0,0),而后打开的窗体虽然大小改变但不是正确大小,图片也不会自动居中显示!
package _class.p4;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;class DrawFrame extends JFrame 
{
String path;
DrawPane p;
JMenuBar bar=new JMenuBar();
JMenu menu=new JMenu("File");
JMenuItem open=new JMenuItem("Open",KeyEvent.VK_O);
JMenuItem close=new JMenuItem("Close",KeyEvent.VK_C);
JMenuItem exit=new JMenuItem("Exit",KeyEvent.VK_X);
JFileChooser fc=new JFileChooser();
DrawFrame(String title)
{
super(title);
setDefaultCloseOperation(3);
menu.setMnemonic(KeyEvent.VK_F);
fc.setCurrentDirectory(new File("."));
menu.add(open);
menu.add(close);
menu.addSeparator();
menu.add(exit);
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
fc.showOpenDialog(DrawFrame.this);
File f=fc.getSelectedFile();
path=f.toString();
resize(p.imgWidth,p.imgHeight);
p.setPicture(path);
//validate();
}
});
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});

bar.add(menu);
setJMenuBar(bar);
p=new DrawPane();
getContentPane().setLayout(new FlowLayout());
getContentPane().add(new JScrollPane(p));
setSize(200,200);
//setResizable(false);
setVisible(true);

}
public static void main(String[] args)
{
DrawFrame f=new DrawFrame("Pretty");
}
}class DrawPane extends JPanel
{
Image img;
ImageIcon imgPool;
JLabel pool=new JLabel();
public int imgWidth,imgHeight;
DrawPane()
{
add(pool);
}
public void setPicture(String p)
{
img=Toolkit.getDefaultToolkit().getImage(p);
imgPool=new ImageIcon(img);
imgWidth=imgPool.getIconWidth();
imgHeight=imgPool.getIconHeight();
System.out.println(imgWidth);
System.out.println(imgHeight);
pool.setIcon(imgPool);
}
}