utiliser 2 paint different pour le meme composant ?
Bonjour a tous.
Alors mon problème va vous paraître tordu. Je vous explique je souhaiterait ajouter un composant que j'ai moi même créer. Pour le moment rien de très compliquer seulement je voudrais que lorsque je clique dessus un cadre rouge l'entoure.
Peut être cas la lecture du code vous y vérrer plus clair :
class fenetre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class fenetre extends JFrame{
static final long serialVersionUID = 1l ;
JPanel panneauPrincipal = new JPanel() ;
jCanvas jCanvas = new jCanvas() ;
evenement evenement = new evenement() ;
public fenetre() {
jCanvas.setPreferredSize(new Dimension(200,200)) ;
jCanvas.addMouseListener(evenement);
panneauPrincipal.add(jCanvas) ;
setContentPane(panneauPrincipal) ;
setTitle("test Graphics") ;
setSize(400,400) ;
setVisible(true) ;
setDefaultCloseOperation(EXIT_ON_CLOSE) ;
}
public static void main(String[] args) {
new fenetre() ;
}
} |
class jcanvas :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| import java.awt.Graphics;
import javax.swing.JPanel;
public class jCanvas extends JPanel{
final static long serialVersionUID = 1l ;
public void paint(Graphics g) {
super.paint(g);
g.drawString("Clique ici pour m'encadrer", 100, 100) ;
}
public void encadrer(Graphics g){
super.paint(g);
g.drawRect(0, 0, 190, 190) ;
}
} |
class evenement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class evenement implements MouseListener{
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
System.out.println("Lol sa marche") ;
jCanvas canvas = new jCanvas() ;
canvas.encadrer(canvas.getGraphics()) ;
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
} |
erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Lol sa marche
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at jCanvas.encadrer(jCanvas.java:17)
at evenement.mousePressed(evenement.java:24)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source) |
Quelqu'un pourrait t'il m'aider a y voir plus clair merci d'avance.