Jpanel est un objet utilisable quand on d�sire placer en son sein d'autres composant 
visuels.
Il ne semble pas que cela soit les cas.

Un cas plus simple est de d�river directement de javax.swing.JComponent.

Mais dans ton cas, pour dessiner une voiture tu peux, beaucoup plus simplement, 
impl�menter l'interface javax.swing.Icon et utiliser JLabel.

Icon impose une m�thode :
public void paintIcon(Component c,
                      Graphics g,
                      int x,
                      int y)
Ou tu pourras dessiner ta voiture dans l'orientation d�sir�e.

Cordialement,

--------------------------------------------------------------------
Erik Mazoyer, Chef de projet
HyperOffice
6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
T�l. 01 41 96 96 76
Fax 01 41 96 96 77
M�l  [EMAIL PROTECTED] 
 

-----Message d'origine-----
De : andriamasinoro fenintsoa [mailto:[EMAIL PROTECTED]]
Envoy� : lundi 10 f�vrier 2003 09:11
� : [EMAIL PROTECTED]
Objet : Aide sur JLayeredPane


Bonjour,

Je souhaite utiliser un JLayerdPane pour les objectifs suivants:
couche 0: afficher une carte de ville en background
couche 1: dessiner une voiture via un polygon. Cette voiture sera
redessin�e en permanence en fonction de son orientation mais c'est le
backgournd qui ne change pas.

Le probl�me est que je dois d'abord avoir le Graphics context (le g
donc) correspondant � la voiture avant de pouvoir la dessiner. Pour
cela, je pensais utiliser un JPanel (cf. le code ci-dessous) mais ...ma
voiture ne s'affiche pas. Pourquoi svp? est-ce que le JPanel est en
conflit avec une couche d'un JLayeredPane? Quelle solution
proposez-vous?

Merci pour votre aide

ANDRIAMASINORO Fenintsoa (Mr)

ps: avec un JLabel et une imageIcon, �a marche bien. Mais comme ma
voiture s'oriente en permanence d'un certain angle (et aussi pour des
raisons de performance), je pr�f�re utiliser g.fillXXX() et les
g.drawXXX() pour afficher ma voiture.

*************************
    backGroundImg = new ImageIcon("images/map.jpg");

    //Create and set up the layered pane.
    layeredPane = new JLayeredPane();

    JLabel backGround = new JLabel(backGroundImg);
    backGround.setBounds(0, 0, 1000, 1000);
    layeredPane.add(backGround, new Integer(0));

    //Create and add the Duke label to the layered pane.
    dukeLabel = new JLabel(icon);
    dukeLabel.setBounds(70, 70, icon.getIconWidth(),
icon.getIconHeight());
    layeredPane.add(dukeLabel, new Integer(0), 0);

// Create and add Panel
    JPanel panel = new JPanel() {
 public Dimension getPreferredSize() {
   return new Dimension(800,600);
 }

 public void paint(Graphics g) {
   super.paint(g);
   g.fillRect(...);
 }
      };

--
IREMIA-Lab. | University of La R�union (France)
tel: 0 262 938 324 | cel: 0 692 811 924 | fax: 0 262 938 260
from abroad: 0 -> +262
Web page: "http://fenintsoa.net/";
-----
lift up the wisdom and the wisdom will lift you up [Prov. 4:7-8]


Répondre à