// // MaisonVarJFrame.java // MaisonVarJFrame // // Created by Guy Lapalme on Sun Dec 21 2003. // Copyright (c) 2003 __MyCompanyName__. All rights reserved. // import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.geom.Ellipse2D; import javax.swing.JFrame; import javax.swing.JPanel; public class MaisonVarJFrame { private static class MaisonPanel extends JPanel{ // ceci se réaffichera en centrant la maison dans le JFrame // quand on changera la grandeur de la fenêtre... public void paintComponent(Graphics g){ super.paintComponent(g); Graphics2D g2d = (Graphics2D)g; // paramètres du dessin int largeurFenetre = getSize().width; int hauteurFenetre = getSize().height; int largeur = largeurFenetre/2; int hauteur = hauteurFenetre/2; int xHautGauche = (largeurFenetre - largeur)/2; int yHautGauche = (hauteurFenetre - hauteur)/2; int xSommet = xHautGauche+largeur/2; int ySommet = yHautGauche-hauteur/3; int plancher = yHautGauche+hauteur; // dessin des objets // murs et plafonds g2d.draw(new Rectangle2D.Double(xHautGauche,yHautGauche,largeur,hauteur)); // toit rouge g2d.setColor(Color.red); g2d.draw(new Line2D.Double(xHautGauche,yHautGauche,xSommet,ySommet)); g2d.draw(new Line2D.Double(xSommet,ySommet,xHautGauche+largeur,yHautGauche)); // porte bleue g2d.setColor(Color.blue); g2d.fill(new Rectangle2D.Double(xHautGauche+largeur/4,yHautGauche+hauteur/3, largeur/4, 2*hauteur/3)); // fenetre verte g2d.setColor(Color.green); g2d.fill(new Ellipse2D.Double(xSommet+largeur/8,yHautGauche+hauteur/3, Math.min(largeur,hauteur)/4, Math.min(largeur,hauteur)/4)); // titre g2d.setColor(Color.black); g2d.setFont(new Font("SansSerif",Font.BOLD,12)); String mess = "Ma petite maison dans le JPanel"; g2d.drawString(mess, (float)(largeurFenetre-g2d.getFontMetrics().stringWidth(mess))/2, (float)plancher+25); } } public static void main (String args[]) { JFrame f = new JFrame(); JPanel p = new MaisonPanel(); f.getContentPane().add(p); f.setSize(250,200); f.setLocation(100,100); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }