Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Aikanáro Anário en 20 Septiembre 2011, 04:00 am



Título: Dibujar líneas de colores diferentes.
Publicado por: Aikanáro Anário en 20 Septiembre 2011, 04:00 am
Saqué el código de aquí: http://www.webtaller.com/manual-java/control-flujo.php

Código
  1. import java.util.*;
  2. import java.awt.*;
  3.  
  4. public class Estudiando {
  5. public static void main (String arg[]){
  6. Color color = new Color();
  7. int contador;
  8. for( contador=1; contador <= 12; contador++ ){
  9. switch(contador % 3){
  10. case 0: setColor( Color.red );
  11. break;
  12. case 1: setColor( Color.blue );
  13. break;
  14. case 2: setColor( Color.green );
  15. break;
  16. }
  17. g.drawLine( 10,contador*10,80,contador*10 );
  18. }
  19. }
  20.  
  21. }
  22.  

Dice que dibuja una línea alternando el color. No entiendo muy bien la sentencia:
Código
  1. g.drawLine( 10,contador*10,80,contador*10 );
Por que nunca he usado awt, ni nada que tenga que ver con GUI, así que no sé cuales serían los parámetros que recibe el método drawLine, pero bueno, eso no es lo importante.

Creo que no funciona porque no he creado ninguna instancia de la clase color así que lo la cree y quedo así:
Código
  1.  
  2. import java.util.*;
  3. import java.awt.*;
  4.  
  5. public class Estudiando {
  6. public static void main (String arg[]){
  7. Color color = new Color();
  8. int contador;
  9. for( contador=1; contador <= 12; contador++ ){
  10. switch(contador % 3){
  11. case 0: color.setColor( color.red );
  12. break;
  13. case 1: color.setColor( color.blue );
  14. break;
  15. case 2: color.setColor( color.green );
  16. break;
  17. }
  18. g.drawLine( 10,contador*10,80,contador*10 );
  19. }
  20. }
  21.  
  22. }
  23.  
Que no funciona tampoco.


Título: Re: Dibujar líneas de colores diferentes.
Publicado por: RyogiShiki en 20 Septiembre 2011, 20:03 pm
Hola que tal!

Bueno vamos a ver, el método drawLine() está definido de la siguiente manera:

Código
  1. public abstract void drawLine(int x1,
  2.                              int y1,
  3.                              int x2,
  4.                              int y2)

Donde: x1 y y1 representan el punto de inicio de la linea, y los puntos x2, y2 el puntp de finalización:

(http://webpagecafe.ca/MTM4003/classes/0002_Assignment%201%20-%20Basic%20Drawing/images/line.jpg)

Ahora estás usando mal el método setColor(), éste método debe usarse en el contexto de los gráficos, es por eso que su uso correcto serie el siguiente:

Código
  1. g.setColor(Color)

Ahora también debes tener alguna forma de pintar eso, así que seguramente necesitas extender un componente, o usar el método paint() junto con init() dependiendo de lo que estés haciendo y donde quieras pintar esas lineas, en ningún lado está declarado que g sea un objeto Graphics, lo cual debes hacer, para guiarte mejor y entiendas mejor todo esto te dejo este pedazo de documentación, que seguro lo explica mejor que yo: http://java.sun.com/products/jfc/tsc/articles/painting/

Saludos


Título: Re: Dibujar líneas de colores diferentes.
Publicado por: Aikanáro Anário en 20 Septiembre 2011, 21:31 pm
Se supone que el código debería de funcionar...
Mejor dejo eso en espera hasta que conozca mejor la clase Graphics y AWT y cosas de GUI.