Jcomponent personnalisé dans un Jpanel [Swing] - Java - Programmation
MarshPosté le 16-02-2006 à 17:27:35
Bonjour,
après avoir lu pas mal de tutoriaux et testé des tonnes de solutions, je viens chercher de l'aide car il y a un truc bête que je n'ai pas dû comprendre dans toutes ces docs...
Mon problème : je souhaite dessiner des objets graphiques (des points par exemple) sur un Jpanel (qui à terme comportera une image en arrière plan, mais chaque chose en son temps).
Pour le moment j'en suis réduit à tester des bouts de code pour comprendre ce qu'il se passe...
le code de mon composant point :
Code :
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import javax.swing.JComponent;
publicclass GraphPoint extends JComponent {
Ellipse2D.Double point = null;
Color color = null;
public GraphPoint(int _x, int _y, Color _color) {
color = _color;
point = new Ellipse2D.Double(_x, _y, 20, 20);
}
publicvoid move(int _x, int _y) {
point.x = _x;
point.y = _y;
}
protectedvoid paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(color);
g2d.fill(point);
}
}
et mon code pour mettre un point dans le panel :
Code :
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JPanel;
publicclass CopyOftestVisu {
private ArrayList<GraphPoint> graphPoints = new ArrayList<GraphPoint>(); // @jve:decl-index=0:
GraphPoint pt1 = new GraphPoint(100, 100, Color.RED);
app.graphPoints.add(pt1);
panel.add(pt1);
//ajout d'un point à la frame : fonctionne
// app.addPoint(150, 150, Color.RED);
app.getJFrame().setVisible(true);
}
}
Le point s'affiche bien lorsque je le met dans la Jframe, mais pas quand je le met dans je Jpanel... quel est le problème avec le panel ? Problème de layout ?
Marsh Posté le 16-02-2006 à 17:27:35
Bonjour,
après avoir lu pas mal de tutoriaux et testé des tonnes de solutions, je viens chercher de l'aide car il y a un truc bête que je n'ai pas dû comprendre dans toutes ces docs...
Mon problème : je souhaite dessiner des objets graphiques (des points par exemple) sur un Jpanel (qui à terme comportera une image en arrière plan, mais chaque chose en son temps).
Pour le moment j'en suis réduit à tester des bouts de code pour comprendre ce qu'il se passe...
le code de mon composant point :
et mon code pour mettre un point dans le panel :
Le point s'affiche bien lorsque je le met dans la Jframe, mais pas quand je le met dans je Jpanel...
quel est le problème avec le panel ? Problème de layout ?