Resolução Exercício 4.21 Deitel Java (Estudo de Caso sobre GUIs e imagens gráficas)

A Figura 4.21 exibe dois projetos adicionais criados utilizando-se loops while e drawLine.
a) Crie o projeto na captura de tela da esquerda na Figura 4.21. Comece dividindo cada borda em um número igual de incrementos (escolhemos
15 novamente). A primeira linha inicia no canto superior esquerdo e termina um passo à direita na extremidade inferior. Para
cada linha sucessiva, move-se para baixo um incremento na borda esquerda e um incremento para a direita na borda inferior. Continue
desenhando linhas até alcançar o canto inferior direito. A figura deve ser dimensionada à medida que você redimensiona a janela, de
modo que as extremidades sempre toquem as bordas.
b) Modifique sua resposta da parte (a) para espelhar o projeto em todos os quatro cantos, como mostrado na captura de tela da direita na
Figura 4.21.

Boa Tarde,

Caso alguém precise da resposta segue abaixo:

Depois de muito esforço, conseguir resolver o problema.

segue abaixo a resolução o problema.

DrawPanel.java

package Exercicios4_2;

import java.awt.Graphics;
import javax.swing.JPanel;

/**
*

  • @author AE
    */
    public class DrawPanel extends JPanel {
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);

     int width = getWidth();
     int height = getHeight();
    
     
    int bordaX,bordaY;
    int contX = 1;
    int contY = 1;
    int loop = 1;
    
    bordaX = width/15;
    bordaY = height/15;
    
    while(loop<15)
    {
        //canto superior esquerdo
        g.drawLine(0,bordaY*contY,bordaX*contX,height); 
    
        //canto inferior esquerdo
        g.drawLine(0,height-bordaY*contY,bordaX*contX,0);
        
        //canto superior direito
        g.drawLine(width,bordaY*contY,width-bordaX*contX,height);
                
        //canto inferior direito
       g.drawLine(width,height-bordaY*contY,width-bordaX*contX,0);
       
        
        ++loop;
        ++contX;
        ++contY;
    }  
    

    }
    }

DrawPanelTest.java

package Exercicios4_2;

import javax.swing.JFrame;

/**
*

  • @author AE
    */
    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);   
    

    }
    }

Muito obrigado foi bem esclarecedor.