Facewindu | Bonjour
J'ai créé une classe qui étend JPanel, qui doit contenir une image.
Pour m'entraîner à manipuler les Graphics2D, j'ai fait plein de petites bidouilles :
Code :
- private void initialize() {
- this.setSize(437, 293);
- this.setLayout(null);
- img1=ImageUtilities.getBufferedImage(filePath,this);
- setBorder(BorderFactory.createTitledBorder("Image" ));
- }
- @Override
- public void paintComponent(Graphics g) {
- super.paintComponent(g);
- Graphics2D g2D=(Graphics2D)g;
- g2D.translate(100,100);
- g2D.setColor(Color.black);
- g2D.scale(0.1,0.1);
- g2D.drawImage(img1,null,15,15);
- g2D.scale(3,3);
- g2D.setColor(Color.red);
- g2D.fillOval(-50,-50,100,100);
- g2D.setColor(Color.black);
- g2D.rotate(-Math.PI/4);
- g2D.rotate(2*Math.PI/4);
- g2D.drawImage(img1,null,0,0);
- }
|
La méthode initialize est appelée en premier, elle est censée créer la bordure "Image" du JPanel.
Puis ensuite la methode surchargée paintComponent doit gérer l'affichage de mon image, en la tournant, la redimensionnant.
J'obtiens bien mes images, tournées, redimensionnées, et la bordure apparait elle aussi tournée et redimensionnée.
Je pense que ca vient du fait que j'utilise paintComponent pour dessiner mes images et que ça doit poser des problèmes, parce que je modifie la manière dont la bordure est créée dans le paintComponent de base du JPanel.
Est-ce que quelq'un voit une manière simple de faire (pour que la bordure apparaissent normalement, sans être modifiée), en gardant la même philosophie de surcharge d'une méthode ? |