要想真正把读入图像的BufferedImage对象实例显示到UI上为眼睛所见,还需要使用JFrame组件,把JPanel组件实例通过add()方法加到JFrame的内容面板上。在Java Swing中只有JFrame、JDialog与JApplet属于顶层容器,其他组件最终必须依附于顶层容器才能够正确显示,使用JFrame来显示JPanel与BufferedImage对象实例大致可以通过如下几步实现。
1)在JPanel中通过重载JComponent的paintComponent()方法绘制BufferedImage实例。
2)获取JFrame的内容面板,这里使用的布局管理器为BorderLayout,然后把JPanel实例添加到JFrame的内容面板中,代码如下:
// JPanel 实例对象添加到JFrame的内容面板上 imagePanel = new ImagePanel(); getContentPane().setLayout(new BorderLayout()); getContentPane().add(imagePanel, BorderLayout.CENTER);
3)通过JFrame的setVisible()方法来实现JFrame的显示,通过setPreferredSize()方法来控制JFrame组件的大小。代码如下:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setPreferredSize(new Dimension(800, 600)); pack(); setVisible(true);