身份证解析,使我们组选的小项目,作为java学习的一个小检验,当每个组员分配任务后,发现问题其实挺多的。用JFrame实现内容的输出,因为老师主要讲的是NetBeans,所以JFrame这块需要我们自己研究。
如何给窗体添加背景这一块不知道其他人认为怎么样,对于我们这些初学java的人来说,我认为还是不好弄。但是最后还是弄出来了。
背景添加的主要程序:
BufferedImage image=null;
try {
image=ImageIO.read(new File("F:/java/IDcard/img.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
background = new ImageIcon(image);//背景图片
JLabel label = new JLabel(background);//把背景图片显示在一个标签里面
// 把标签的大小位置设置为图片刚好填充整个面板
label.setBounds(0,0,background.getIconWidth(),background.getIconHeight());
//把内容窗格转化为JPanel,否则不能用方法setOpaque()来使内容窗格透明
JPanel imagePanel = (JPanel)this.getContentPane();
imagePanel.setOpaque(false);
//内容窗格默认的布局管理器为BorderLayout
imagePanel.setLayout(new FlowLayout());
this.getLayeredPane().setLayout(null);
//把背景图片添加到分层窗格的最底层作为背景
this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(background.getIconWidth(),background.getIconHeight());
}
虽然背景添加成功,但是输出的内容总是遮挡住背景,想了好多方法还是不行,最后才知道只是缺了一个小语句:jta.setOpaque(false);添加这条小语句后,就达到了想要的结果。
遇到问题不要就把它放下,放下了就永远解决不了,拿起来,会发现,其实并不是想的那么难。