在我的MyPanel类中加了一个图片,当我运行程序的时候,这个面板并不显示出来,只有我最大化或者最小化一下之后,才能显示出来,哪位好心人能帮忙解决一下。我是菜鸟~初学者
  代码如下:
  import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class Welcome extends JFrame 
{ Image img1;
  ImageIcon img2,img3,img4;
  Toolkit tool;
  MyPanel p1;
  JLabel l1;
  JButton b1,b2;
public static void main(String args[])
{
Welcome wel=new Welcome();

}
Welcome()
{   
p1=new MyPanel();
img3=new ImageIcon("bb1.jpg");
b1=new JButton("进入");
b2=new JButton("退出");
tool=getToolkit();
Dimension dim=tool.getScreenSize();
int a=(int)dim.getHeight();
int b=(int)dim.getWidth();
img1=tool.getImage("4.jpg");
img2=new ImageIcon("cat.jpg");
this.setTitle("招财猫彩票系统");
this.setIconImage(img1);
l1=new JLabel(img2);
l1.setBounds(0,0,img2.getIconWidth(), img2.getIconHeight());
Container con=this.getContentPane();
con.setLayout(null);
((JPanel)con).setOpaque(false);
    this.getLayeredPane().setLayout(null);
this.getLayeredPane().add(l1,new Integer(Integer.MIN_VALUE));
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBounds(b/4, a/4, img2.getIconWidth(),img2.getIconHeight());
b1.setBounds(100,350,70,40);
b2.setBounds(400,350,70,40);
p1.setLocation(150,80);
p1.setVisible(true);
p1.validate();
System.out.println(this.getWidth());
System.out.println(this.getHeight());
con.add(b1);
con.add(b2);
con.add(p1);
this.setVisible(true);
this.validate();
}
  
}
class MyPanel extends JPanel
{
Toolkit tool;
Image img1;
MyPanel()
{
 tool=getToolkit();
 img1=tool.getImage("15.png");
 this.setSize(280, 220);   
}
public void paintComponent(Graphics g)
{
g.drawImage(img1, 0, 0, null);
}
}

解决方案 »

  1.   

    你的setVisible()方法调用的问题,改成下面的代码试试import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class Welcome extends JFrame
    {
        Image img1;
        ImageIcon img2,img3,img4;
        Toolkit tool;
        MyPanel p1;
        JLabel l1;
        JButton b1,b2;
        public static void main(String args[]){
            Welcome wel=new Welcome();    }
        Welcome(){
            p1=new MyPanel();
            img3=new ImageIcon("bb1.jpg");
            b1=new JButton("进入");
            b2=new JButton("退出");
            tool=getToolkit();
            Dimension dim=tool.getScreenSize();
            int a=(int)dim.getHeight();
            int b=(int)dim.getWidth();
            img1=tool.getImage("4.jpg");
            img2=new ImageIcon("cat.jpg");
            this.setTitle("招财猫彩票系统");
            this.setIconImage(img1);
            l1=new JLabel(img2);
            l1.setBounds(0,0,img2.getIconWidth(), img2.getIconHeight());
            Container con=this.getContentPane();
            con.setLayout(null);
            ((JPanel)con).setOpaque(false);
            this.getLayeredPane().setLayout(null);
            this.getLayeredPane().add(l1,new Integer(Integer.MIN_VALUE));
            this.setDefaultCloseOperation(EXIT_ON_CLOSE);
            this.setBounds(b/4, a/4, img2.getIconWidth(),img2.getIconHeight());
            b1.setBounds(100,350,70,40);
            b2.setBounds(400,350,70,40);
            p1.setLocation(150,80);
    //        p1.setVisible(true);
    //        p1.validate();
            System.out.println(this.getWidth());
            System.out.println(this.getHeight());
            con.add(b1);
            con.add(b2);
            con.add(p1);
            this.setVisible(true);
            this.validate();
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }}
    class MyPanel extends JPanel
    {
        Toolkit tool;
        Image img1;
        MyPanel()
        {
            tool=getToolkit();
            img1=tool.getImage("15.png");
            this.setSize(280, 220);
        }
        public void paintComponent(Graphics g)
        {
            g.drawImage(img1, 0, 0, null);
        }
    }
      

  2.   

    你加我QQ 519582737 我本机没有你引用的那些图片,你用QQ给我传过来