做课设,想用Java仿一个微信页面出来。
界面结构大概是这样的:一个 JFrame 中有左中右三个 JPanel,然后左边的 JPanel 中又添加了一个放头像的 PicturePanel。PicturePanel做的事情大概就是:如果 new PicturePanel(ImageIcon picture) 的参数为 ImageIcon ,就将 ImageIcon 作为头像 new 一个 JLabel 添加进 PicturePanel 中,如果 PicturePanel(null) 的参数为空,就调用 PicturePanel 的 PaintComponent() 方法绘制默认头像。
现在的问题是:我自己测试 PicturePanel 这个类好像是没问题的,图片和绘制图形都可以正常显示。在 JFrame 最左边的深色 JPanel(MenuPanel)中 new PicturePanel(null) 也可以正常显示绘制的默认头像,但是,一旦我在 JFrame 最左边的深色 JPanel(MenuPanel)中 new PicturePanel(ImageIcon picture) ,不仅图像显示不出来,JFrame中原先添加的三个JPanel也不会显示。效果如图:
以下是代码:
PicturePanel.java
package View.Icons;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
* 绘制用户头像
* @date 2016/10/20
* @version 1.0
*/
public class PictureIconPanel extends JPanel {
private static final long serialVersionUID = 1L;
/**
* 用户头像 ImageIcon
*/
private ImageIcon picture = null;
/**
* 默认图片宽度
*/
private int pictureWidth = 37;
/**
* 默认图片高度
*/
private int pictureHeight = 37;
/**
* 构造方法
*
生成一个用户头像面板
* @param picture 用户头像
*/
public PictureIconPanel(ImageIcon picture) {
this.picture = picture;