Posicionar retangulo

3 respostas
PePeLeGaL

pessoal, gostaria de saber como faco para posicionar o retangulo no centro do JPanel que por consequencia estara no centro do JFrame ? :roll:
Se eu ficar fazendo por tentativas e erros dará certo, mas creio que ha uma forma inteligente. Se alguem souber…

import java.awt.*;
import javax.swing.*;

public class Shapes extends JPanel
{
	private int choice;
	
	public Shapes()
	{

	}	
	
	public void paintComponent(Graphics g)
	{
		int a = getWidth();
		int b = getHeight();
		
		super.paintComponent(g);
		
		g.drawRect(a/2, b/2, 50, 50);
	}
}
import javax.swing.*;

public class ShapesTest
{
	public static void main(String args[])
	{
		Shapes panel = new Shapes();
		
		JFrame application = new JFrame();
		
		application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		application.add(panel);
		application.setSize(300, 300);
		application.setVisible(true);
	}
}

3 Respostas

acopiara

Você diz qual vai ser a largura e altura do retangulo;
ex:

int w = 30; int h = 30; g.drawRect(a/2 - w/2, b/2 - h/2,w, h);

Valeu

PePeLeGaL

:lol: :lol: :lol: valeu cara

ViniGodoy

Dê também uma olhada no getInsets().

Ele te diz que medidas no topo, lateral esquerda, direita e na parte de baixo estão sendo usadas pela decoração, seja da tela, ou de uma borda do componente.

Isso é especialmente importante se você estiver tentando centralizar algo no JFrame, implementando o paintComponent do frame diretamente. Sem levar os insets em consideração, o retângulo desenhado parecerá deslocado pois a borda superior do JFrame - onde tem o título e os botões de maximizar, fechar, etc. - é muito grande.

Criado 24 de março de 2007
Ultima resposta 24 de mar. de 2007
Respostas 3
Participantes 3