我用JPanel显示图片以后又用了另一个JPanel把这个图片的版块放进去,然后再把第二个JPanel放到窗口中去,却什么也显示不出。直接把图片的JPanel放进去是可以显示的...
现在怎么看都觉得是第二个JPanel出了问题,因为我在面板上添加的其他信息也没有显示出来。那个,小可实在没看出来问题出哪了,请各位帮忙看看(衷心希望这次不是白痴错误了……)代码如下:
//图片面板,这个显示是没有问题的
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;class PersonImage extends JPanel{
Image image=null;
PersonImage(int cSex){
if(cSex==1)image=new ImageIcon("ff1.jpg").getImage();
else if(cSex==2)image=new ImageIcon("ff2.jpg").getImage();
else image=new ImageIcon("ff3.jpg").getImage();

setPreferredSize(new Dimension(image.getWidth(this),image.getHeight(this)));
}

public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image, 0, 0, this);
}}//第二个面板,什么也显示不出来
import java.awt.Dimension;
import java.awt.FlowLayout;import javax.swing.JLabel;
import javax.swing.JPanel;public class PersonPanel extends JPanel{
PersonImage pi;
JLabel p_name,p_ip;

public void PersonPanel(){
pi=new PersonImage(3);
pi.setBounds(0, 30, 470, 260);
p_name=new JLabel("漫舞流雲");//将由某个变量显示当前用户昵称
p_name.setBounds(6, 20, 85, 21);
p_ip=new JLabel("IP:127.0.0.1");//将由某个变量显示当前socket的Ip
p_ip.setBounds(5, 520, 100, 21);
this.setLayout(null);
this.add(pi);
this.add(p_name);
this.add(p_ip);
this.setPreferredSize(new Dimension(260,550));
}}
//窗口,用pi是可以成功显示图片的,用pers就全灰的
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.FlowLayout;class TestFrame extends JFrame{
//PersonImage pi;
PersonPanel pers;
TestFrame(){
super("测试");
pers=new PersonPanel();
//pi=new PersonImage(3);
setLayout(new FlowLayout());
//add(pi);
this.add(pers);
this.setBounds(0,0,280,550);
this.setVisible(true);
}

public static void main(String[] args){
new TestFrame();
}
}