/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package feuille.drawing.lib; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JPanel; /** * Règle verticale pour le composant Sheet * @author The Wingate 2940 */ public class SheetVBorder extends JPanel { private int scale = 1, height = 0; public SheetVBorder(int height){ this.height = height; setLayout(null); setPreferredSize(new Dimension(40, height)); revalidate(); } @Override public void paint(Graphics g){ //Charge la classe Graphics2D pour pouvoir avoir accès à ses méthodes. Graphics2D g2d = (Graphics2D)g; g2d.setColor(Color.white); g2d.fillRect(0, 0, getWidth(), getHeight()); g2d.scale(scale, scale); //Définit et dessine les axes du milieu et le quadrillage. g2d.setColor(new Color(216,255,253)); g2d.setStroke(new BasicStroke(2f)); g2d.drawLine(0, (getHeight()/scale)/2, getWidth(), (getHeight()/scale)/2); //horizontal g2d.setColor(new Color(234,216,255)); g2d.setStroke(new BasicStroke(1f)); int i = getHeight()/2; while(i>=0){ i=i-25; g2d.drawLine(0, i, getWidth(), i); } i = getHeight()/2; while(i<=getHeight()){ i=i+25; g2d.drawLine(0, i, getWidth(), i); } //Dessine les nombres aux bords ; ils correspondent aux coordonnées. g2d.setColor(Color.darkGray); g2d.rotate(Math.toRadians(-90)); i = (getHeight()/scale)/2; while(i>=0){ i=i-50; g2d.drawString(Integer.toString((i-(getHeight()/scale)/2)), -i-10, 10); } i = (getHeight()/scale)/2; while(i<=getHeight()){ i=i+50; g2d.drawString(Integer.toString((i-(getHeight()/scale)/2)), -i-10, 10); } g2d.rotate(Math.toRadians(0)); } public void setScaleXY(int scale){ this.scale = scale; setPreferredSize(new Dimension(40, height*scale)); revalidate(); repaint(); } public int getScaleXY(){ return scale; } public void update(){ repaint(); } }