Boa tarde. Estou tentando resolver um problema que consiste na criação de linhas que se projetam das quatro extremidades de um painel. Eu só consegui projetar as linhas dos cantos superiores pois quando tento modificar os valores para projetar nos cantos inferiores, parece que a JVM interpreta que estou escrevendo outra vez as instruções para os cantos superiores. Obrigado pela ajuda. Segue abaixo a imagem e o meu código incompleto:
package drawpanel;
// desenha duas linhas que se cruzam em um painel.
import java.awt.Graphics; // fornece métodos para desenhar texto e formas na tela
import javax.swing.JPanel; // fornece um lugar onde se possa desenhar
public class DrawPanel extends JPanel // DrawPanel herda dados e métodos públicos de JPanel
{
public void paintComponent(Graphics g)
{
// chama paintComponent para assegurar que o painel é exibido corretamente
super.paintComponent(g);
int width = getWidth(); // largura total para as linhas inferiores
int height = getHeight(); // altura total para as linhas inferiores
int width2 = getWidth(); // largura total para as linhas superiores
int height2 = getHeight(); // altura total para as linhas superiores
int width3 = getWidth();
int height3 = getHeight();
int width4 = getWidth();
int height4 = getHeight();
int width5 = getWidth();
int height5 = getHeight();
int width6 = getWidth();
int height6 = getHeight();
int lineCounter = 1; // contador de linhas
/* desenha quinze linhas a partir do canto superior esquerdo
* até metade da largura e da altura do painel
*/
while(lineCounter <= 9)
{
g.drawLine(0, height5, width5 / 2, height5 / 2);
height5 -= 30;
g.drawLine(0, height6, width6 / 2, height6 / 2);
height6 += 30;
g.drawLine(width3 / 2, height3 / 2, width3, 0);
height3 -= 30;
g.drawLine(width4 / 2, height4 / 2, width4 , 0);
height4 += 30;
/* desenha a partir da linha central as linhas superiores do canto superior esquerdo
* com espaço de 15 unidades entre elas */
g.drawLine(0, 0, width2 / 2, height2 / 2);
height2 -= 30;
/* desenha a partir da linha central as linhas inferiores do canto superior esquerdo
* com espaço de 15 unidades entre elas */
g.drawLine(0, 0, width / 2, height / 2);
height += 30;
lineCounter++; // incrementa o número de linhas
} // fim do while
} // fim do método paintComponent
} // fim da classe DrawPanel