我想创建不同的图形对象,但我希望每个图形对象都是不同的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?