Bom Dia!
Pessoal estou estudando Java por conta própria usando o livro do Deitel 8ªe - Java Como Programar e, até agora estava ocorrendo tudo muito bem.
Só que eu empaquei no Exercício 4.1 da página 107 e não consigo fazer de modo algum, não consegui pegar a lógica do problema.
Mas meu maior problema é que eu ainda não consegui entender direito como funcionam as coordenadas para traçar linhas do Java.
Bom, como nem todos tem o livro, temos o seguinte código de exemplo:
CLASS
[code]import java.awt.Graphics;
import javax.swing.JPanel;
public class DrawPanel extends JPanel
{
public void paintComponent( Graphics g )
{
super.paintComponent( g );
int width = getWidth(); //largura
int height = getHeight(); // altura
// desenha uma linha a partir do canto superior esquerdo até o inferior direito
g.drawLine( 0, 0, width, height );
// desenha uma linha a partir do canto inferior esquerdo até o superior direito
g.drawLine( 0, height, width, 0 );
}
}[/code]
MAIN
[code]import javax.swing.JFrame;
public class DrawPanelTest
{
public static void main( String[] args )
{
DrawPanel panel = new DrawPanel();
JFrame application = new JFrame();
application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
application.add( panel );
application.setSize( 250, 250 );
application.setVisible( true );
}
}[/code]
e então temos o enunciado do problema:
[quote]4.1 - O uso de loops e instruções de controle para desenhar linhas pode resultar em muitos projetos interessantes
a) Crie o projeto na captura de tela esquerda da Figura 4.20. Esse projeto desenha linhas a partir do canto superior esquerdo, estendendo as linhas ate que elas cubram a metade superior esquerda do painel. Uma abordagem é dividir a largura e a altura em um numero igual de passos (descobrimos que 15 passos funcionam bem). A primeira extremidade de uma linha sempre estará no canto superior esquerdo(0, 0). A segunda extremidade pode ser encontrada iniciando no canto inferior esquerdo e movendo-se para cima um passo vertical e para a direita um passo horizontal. Desenhe uma linha entre as duas extremidades. Continue movendo-se para cima e para a direita para encontrar cada extremidade sucessiva. A figura deve ser dimensionada de maneira correspondente à medida que você redimensiona a janela.
b) Modifique sua resposta na parte(a) para que as linhas se estendam a partir de todos os quatro cantos, como mostrado na captura de tela direita da Figura 4.20. As linhas nos cantos opostos devem se cruzar no meio.
[/quote]
PS: Pesquisei e encontrei este tópico: http://www.guj.com.br/java/243363-ajuda-em-exercicio-41-do-livro-deitel-6-edicao , mas eu realmente não entendi a lógica, se alguém puder me explicar a lógica usada e como usar as coordenadas, ficaria muito grato.
PS2: Como estou estudando por conta, não quero saber somente do exercício respondido pra entregar pra algum professor, eu quero realmente entender como funciona.
MUITO OBRIGADO!