Estou iniciando em java e gostaria de saber como desenhar coisas simples na tela. Já procurei muito e ouvi muito falar de AWT e tal mas numca explicam direito oq é. se possível gostaria de um exemplo de código que desenhe uma linha ou um ponto na tela… flw galera!
Como desenhar na tela
B
3 Respostas
J
Já te passe o que tem que fazer está em mensagem privada…
D
Vejam um exemplo muito legal com o java2d:
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.util.Calendar;
import javax.swing.JFrame;
/**
*
* @author http://www.jroller.com/page/adrianromero?entry=jugando_con_java_2d
*/
public class Main extends JFrame {
public Main() {
this.setDefaultCloseOperation( this.EXIT_ON_CLOSE );
setSize(400,400);
}
public static void main(String[] args) {
// TODO code application logic here
new Main().setVisible(true);
}
public void paint(Graphics g) {
int width = getWidth();
int height = getHeight();
java.util.Date data = new java.util.Date();
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.setTime(data);
double dhour = (double) cal.get( java.util.Calendar.HOUR_OF_DAY );
double dminute = (double) cal.get( java.util.Calendar.MINUTE);
double dsecond = (double) cal.get( java.util.Calendar.SECOND);
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
Paint oldPainter = g2.getPaint();
AffineTransform oldt = g2.getTransform();
g2.setPaint(new GradientPaint(0, 0, Color.WHITE, width, 0, Color.LIGHT_GRAY));
g2.fill(g2.getClip());
int icenterx = width / 2;
int icentery = height / 2;
int iradius = Math.min(icenterx, icentery);
g2.transform(AffineTransform.getTranslateInstance(icenterx, icentery));
g2.transform(AffineTransform.getScaleInstance(iradius / 1100.0 , iradius / 1100.0));
AffineTransform mytrans = g2.getTransform();
g2.setPaint(new GradientPaint(-1200, -1200, Color.BLUE, 1200, 1200, Color.CYAN));
g2.fillOval(-1000, -1000, 2000, 2000);
g2.setPaint(new GradientPaint(-1200, -1200, Color.CYAN, 1200, 1200, Color.BLUE));
g2.fillOval(-900, -900, 1800, 1800);
g2.setColor(Color.BLACK);
g2.drawOval(-1000, -1000, 2000, 2000);
for (int i = 0; i < 60; i++) {
g2.setColor(Color.WHITE);
g2.fillRect(900, -5 , 50, 10);
g2.transform(AffineTransform.getRotateInstance(Math.PI / 30.0));
}
g2.setTransform(mytrans);
for (int i = 0; i < 12; i++) {
g2.setColor(Color.WHITE);
g2.fillRect(800, -15 , 150, 30);
// g2.setColor(Color.BLACK);
// g2.drawRect(800, -15 , 150, 30);
g2.transform(AffineTransform.getRotateInstance(Math.PI / 6.0));
}
g2.setTransform(mytrans);
g2.transform(AffineTransform.getRotateInstance((dhour + dminute / 60.0) * Math.PI / 6.0)); // Poner hora
g2.setColor(Color.WHITE);
g2.fillPolygon(new int[]{0, -35, 0, 35}, new int[]{100, 0, -600, 0}, 4);
g2.setColor(Color.DARK_GRAY);
g2.drawPolygon(new int[]{0, -35, 0, 35}, new int[]{100, 0, -600, 0}, 4);
g2.setTransform(mytrans);
g2.transform(AffineTransform.getRotateInstance((dminute) * Math.PI / 30.0)); // Poner minutos
g2.setColor(Color.WHITE);
g2.fillPolygon(new int[]{0, -35, 0, 35}, new int[]{100, 0, -900, 0}, 4);
g2.setColor(Color.DARK_GRAY);
g2.drawPolygon(new int[]{0, -35, 0, 35}, new int[]{100, 0, -900, 0}, 4);
g2.setTransform(mytrans);
g2.transform(AffineTransform.getRotateInstance(dsecond * Math.PI / 30.0)); // Poner segundos
g2.setColor(Color.YELLOW);
g2.fillPolygon(new int[]{-15, 0, 15}, new int[]{200, -900, 200}, 3);
g2.setColor(Color.DARK_GRAY);
g2.drawPolygon(new int[]{-15, 0, 15}, new int[]{200, -900, 200}, 3);
g2.setTransform(mytrans);
g2.setColor(Color.YELLOW);
g2.fillOval(-25, -25, 50, 50);
g2.setColor(Color.DARK_GRAY);
g2.drawOval(-25, -25, 50, 50);
g2.setColor(Color.WHITE);
g2.fillOval(-10, -10, 20, 20);
g2.setColor(Color.BLACK);
g2.drawOval(-10, -10, 20, 20);
g2.setTransform(oldt);
g2.setPaint(oldPainter);
}
}
fw
B
valew mermo ae galera…
vou testar!!!
BaStO
Criado 8 de outubro de 2006
Ultima resposta 8 de out. de 2006
Respostas 3
Participantes 3