GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

JButton, no centro da Tela

hey pessoal, eu to criando um app de corrida e eu queria saber como eu faço para deixar um JButton no centro da tela sem ter que ficar fazendo contas, alguém pode me ajudar?

nota: eu tentei usar uma operação matemática que seria essa

at = altura
lg = largura
jbSizeAT = JButton altura
jbSizeLG = JButton largura

jb.setLocation(at/2-(jbSizeAT/2),lg/2-(jbSizeLG/2));

não sei se deu para entender mais é tipo eu coloco o botão na metade da tela - a sua própria metade ( por que o ponto de referencia do botão é o canto superior esquerdo ) o que teoricamente seria a metade da tela mais não funcionou

a e se souberem como eu faço para deixar o botão em circular redondo ajudaria
Valeu

O setLocation do seu botão só vai funcionar se o container onde ele estiver inserido estiver com layout null.

sim sim o SetLayout esta null, mais meso com a operação matemática não consigo colocar o JButton no centro

Posta o fonte completo da sua tela.

package buttonrun;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Commands extends JFrame implements ActionListener{
	
	//new Variavel
	JButton jb = new JButton("Terminado");
	JLabel Contagem = new JLabel("texto");
	
	
	//variavel
	int at = 320;
	int lg = 480;
	int jbSizeAT = 50;
	int jbSizeLG = 50;
	int Corrida = 0;
	
	
	public void actionPerformed(ActionEvent e) {
		Corrida++;
		System.out.println(Corrida);
	}
	
	public void JLabel() {
	
	}
	
	public void Button() {
		jb.addActionListener(this);
		setLayout(null);
		jb.setBounds(100,300,100,50);
		add(jb);
	}
	
	public void Janela() {
		add(Contagem);
		add(jb);
		
		
		setTitle("Contador De Corrida");
		setSize(at,lg);
		setLocationRelativeTo(null);
		setVisible(true);
	}
	

}

Você não está chamando o método Button() em nenhum lugar.
Por isso não está setando nenhuma propriedade do seu objeto jb.
:man_shrugging:

Dica: Nomes de métodos sempre em letra minúscula.

Outra coisa, não chama o método setVisible dentro do construtor.
O construtor serve para inicializar os atributos da sua classe e não para apresentar a interface gráfica dela.

//