Retroceder   PuntoSitio.com - Mercado / Marketplace de los webmasters y emprendedores > Diseño y Desarrollo > Programación > JavaScript

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 02-12-2008, 16:29:38
D@rkM@fiu§ D@rkM@fiu§ is offline
Junior Member
 
Registrado: dic 2008
Posts: 1
iTrader: (0)
Predeterminado ¿ayuda con java por favor!!!?

Buenas disculpen las molestias.. pero me ayudarian con este codigo..? me explicarian que funcion tiene ese codigo.. es decir las linear de cada codigo.. o cada clase.. por ejemplo que funcion cumple Graphics2D en este codigo.. espero puedan ayudarme dare la puntuacion mas alta.. mi correo es the_friends_fastlane@hotmail.com para quien quiera contactarme gracias!

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.*;

public class ClockAnalogBuf extends JFrame {

Clock clockFace;

public static void main(String[] args) {
JFrame windo = new ClockAnalogBuf();
windo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
windo.setVisible(true);
}

public ClockAnalogBuf() {
Container content = this.getContentPane();
content.setLayout(new BorderLayout());
clockFace = new Clock();
content.add(clockFace, BorderLayout.CENTER);

this.setTitle("Analog Clock");
this.pack();

clockFace.start();
}
}



class Clock extends JPanel {

private int hours = 0;
private int minutes = 0;
private int seconds = 0;
private int millis = 0;

private static final int spacing = 10;
private static final float twoPi = (float)(2.0 * Math.PI);
private static final float threePi = (float)(3.0 * Math.PI);
private static final float radPerSecMin = (float)(Math.PI / 30.0);

private int size;
private int centerX;
private int centerY;
private BufferedImage clockImage;
private javax.swing.Timer t;


public Clock() {
this.setPreferredSize(new Dimension(300,300));
this.setBackground(Color.white);
this.setForeground(Color.black);

t = new javax.swing.Timer(1000,
new ActionListener() {
public void actionPerformed(ActionEvent e) {
update();
}
});
}


public void update() {

this.repaint();
}

public void start() {
t.start();
}
public void stop() {
t.stop();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASIN G,
RenderingHints.VALUE_ANTIALIAS_ON);


int w = getWidth();
int h = getHeight();
size = ((w<h) ? w : h) - 2*spacing;
centerX = size/2 + spacing;
centerY = size/2 + spacing;


if (clockImage == null
|| clockImage.getWidth() != w
|| clockImage.getHeight() != h) {

clockImage = (BufferedImage)(this.createImage(w, h));
Graphics2D gc = clockImage.createGraphics();
gc.setRenderingHint(RenderingHints.KEY_ANTIALIASIN G,
RenderingHints.VALUE_ANTIALIAS_ON);
drawClockFace(gc);
}


Calendar now = Calendar.getInstance();
hours = now.get(Calendar.HOUR);
minutes = now.get(Calendar.MINUTE);
seconds = now.get(Calendar.SECOND);
millis = now.get(Calendar.MILLISECOND);


g2.drawImage(clockImage, null, 0, 0);

drawClockHands(g);
}

private void drawClockHands(Graphics g) {
int secondRadius = size/2;
int minuteRadius = secondRadius * 3/4;
int hourRadius = secondRadius/2;


float fseconds = seconds + (float)millis/1000;
float secondAngle = threePi - (radPerSecMin * fseconds);
drawRadius(g, centerX, centerY, secondAngle, 0, secondRadius);


float fminutes = (float)(minutes + fseconds/60.0);
float minuteAngle = threePi - (radPerSecMin * fminutes);
drawRadius(g, centerX, centerY, minuteAngle, 0, minuteRadius);

float fhours = (float)(hours + fminutes/60.0);
float hourAngle = threePi - (5 * radPerSecMin * fhours);
drawRadius(g, centerX, centerY, hourAngle, 0, hourRadius);
}
private void drawClockFace(Graphics g) {

g.setColor(Color.pink);
g.fillOval(spacing, spacing, size, size);
g.setColor(Color.black);
g.drawOval(spacing, spacing, size, size);


for (int sec = 0; sec<60; sec++) {
int ticStart;
if (sec%5 == 0) {
ticStart = size/2-10;
} else {
ticStart = size/2-5;
}
drawRadius(g, centerX, centerY, radPerSecMin*sec, ticStart , size/2);
}
}
private void drawRadius(Graphics g, int x, int y, double angle,
int minRadius, int maxRadius) {
float sine = (float)Math.sin(angle);
float cosine = (float)Math.cos(
Responder Con Cita
Links Recomendados
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT. Ahora son las 20:26:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Forum SEO by Zoints