将JPanel添加到JPanel中

时间:2015-03-01 14:17:03

标签: java swing jpanel

我想创建不同的图形对象,但我希望每个图形对象都是不同的Jpanel对象。

我可以像这样绘制我的所有图形:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.PaintContext;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Panel extends JPanel{

    private static BufferedImage IMG;
        static{
            try {
                IMG = ImageIO.read(new File("bground.jpg")); //Replace with your image path
            } catch (IOException e) {
                e.printStackTrace();
                System.out.println("Erreur");
            }
        }       

    public void paintComponent(Graphics g){
        setBackground(Color.BLUE);
        g.drawImage(IMG, 0, 0, 500, 700, this);
        // Carre pour l'eau en Amont
        g.setColor(new Color(34,34,212));
        g.fillRect(3, 250, 200, 100);
        // Carre pour la porte en Amont
        g.setColor(new Color(166,3,0));
        g.fillRect(203, 150,10, 350);
        // Carre pour la porte en Aval
        g.fillRect(283, 150,10, 350);
        // Carre pour l'eau dans le SAS
        g.setColor(new Color(34,34,212));
        g.fillRect(213, 250, 70, 100);

        // Les Feux
        // En amont
        g.setColor(Color.BLACK);
        g.fillRect(203,80,10,40);

        //EN aval
        g.fillRect(283,80,10,40);

        //feu rouge
        g.setColor(Color.RED);
        g.fillArc(203, 82, 10, 10, 0, 360);
        g.fillArc(283, 82, 10, 10, 0, 360);

        //feu Orange
        g.setColor(Color.ORANGE);
        g.fillArc(203, 95, 10, 10, 0, 360);
        g.fillArc(283, 95, 10, 10, 0, 360);

        //feu Vert

        g.setColor(Color.GREEN);
        g.fillArc(203, 108, 10, 10, 0, 360);
        g.fillArc(283, 108, 10, 10, 0, 360);

        // Vanne d'evacuation d'eau en Amont
        }           
    }

但是我希望每个表单都在一个单独的对象中。

喜欢那个

import java.awt.Color;
import java.awt.Graphics;    
import javax.swing.JPanel;

public class Vannes extends JPanel{

    public Vannes(){
    }

    public void paintComponent(Graphics g){
        // Vanne d'evacuation d'eau en Amont 
        g.setColor(Color.BLACK);
        g.fillRect(180, 480, 5, 50);
    }       
}

但是当我加入我的第一个小组时

Vannes v = new Vanne();
什么都没有出现!

为什么

我尝试添加这样但不起作用:

 static Panel panel = new Panel();
 static JLabel j = new JLabel(new ImageIcon("bateauptit.png"));
 static Vannes v1 = new Vannes();

 public ExempleDeplace(){
     //getContentPane().setLayout(new FlowLayout());
     setTitle("Modele Ecluse");
     setSize(500,700);
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setContentPane(panel);
     panel.add(v1);
     panel.add(j);
     System.out.println("Nbr Componemnt" + panel.getComponentCount()); 
     j.setLocation(0, 100);
     System.out.println("X : " + j.getX()+ " Y: " + j.getY());
     //panel.repaint();
     setVisible(true);
     trame();        

     System.out.println("X : " + j.getX()+ " Y: " + j.getY());
}

我的问题是如何将Jpanel实施到另一个JPANEL?

0 个答案:

没有答案
相关问题