package planeta; import java.awt.*; public class Estado extends Canvas { //estado double x, y, Vx, Vy, t; //energía y momento angular double E, L; //Double-buffer Image imag; Graphics gBuffer; Dimension dim; public Estado() { setBackground(Color.cyan); } void setEstado(double x, double y, double Vx, double Vy, double t){ //dos cifras decimales this.x=Math.floor(x*100)/100; this.y=Math.floor(y*100)/100; this.Vx=Math.floor(Vx*100)/100; this.Vy=Math.floor(Vy*100)/100; this.t=Math.floor(t*100)/100; repaint(); } void setConstantes(double energia, double mAngular){ E=Math.floor(energia*100)/100; L=Math.floor(mAngular*100)/100 ; } void muestraValores(Graphics g){ int cAlto=g.getFontMetrics().getHeight(); int cAncho=g.getFontMetrics().stringWidth("0"); g.setColor(Color.black); g.drawString("Energia", 0, cAlto); g.drawString(String.valueOf(E), cAncho, 2*cAlto); g.drawString("M. Angular", 0, 3*cAlto); g.drawString(String.valueOf(L), cAncho, 4*cAlto); g.drawString("Tiempo", 0, 6*cAlto); g.drawString(String.valueOf(t), cAncho, 7*cAlto); g.drawString("Posición", 0, 9*cAlto); g.drawString("X: "+x, cAncho, 10*cAlto); g.drawString("Y: "+y, cAncho, 11*cAlto); g.drawString("Velocidad", 0, 13*cAlto); g.drawString("Vx: "+Vx, cAncho, 14*cAlto); g.drawString("Vy: "+Vy, cAncho, 15*cAlto); } public Dimension getPreferredSize(){ return new Dimension(80, 300); } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ Dimension d=getSize(); if((gBuffer==null)||(d.width!=dim.width)||(d.height!=dim.height)){ dim=d; imag=createImage(d.width, d.height); gBuffer=imag.getGraphics(); } gBuffer.setColor(getBackground()); gBuffer.fillRect(0,0, d.width, d.height); muestraValores(gBuffer); g.drawImage(imag, 0, 0, null); } }