本节书摘来自华章计算机《Java数字图像处理:编程技巧与应用实践》一书中的第3章,第3.2节,作者 贾志刚,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.2 JFrame组件与Main UI实现
要想真正把读入图像的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);