Componente swing não aparece

alguem sabe me dizer por que meu textfild não aparece fica oculto, só aparece quando saio clicando na tela ?
public class TelaCall {

	public TelaCall() {
		JFrame frame = new JFrame("L'Cubico");
		frame.setSize(250, 200);
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setLayout(null);
		frame.setVisible(true);

		// BK
		JPanel contentPane = new JPanel();
		contentPane.setBounds(0, 0, 250, 200);
		contentPane.setBackground(new Color(130,130,130));
		frame.setContentPane(contentPane);
		contentPane.setLayout(null);
		///
		// Botão
		JButton botao = new JButton("Calcular");
		botao.setBounds(70, 60, 100, 25);
		frame.getContentPane().add(botao);

		// textos
		JLabel texto_1 = new JLabel("Alt:");
		texto_1.setBounds(10, 10, 50, 25);
		frame.getContentPane().add(texto_1);
		//
		JTextField textF_1 = new JTextField();
		textF_1.setBounds(5, 100, 70, 30);
		contentPane.add(textF_1);

	}

	public static void main(String[] args) {

		TelaCall um = new TelaCall();
	}
}

Tem algum motivo pra gastar tempo escrevendo esse código na mao? Nao poderia usar o Window Builder ou o designer do Netbeans?

eu sou iniciante, só uso designer para ver algum código complementar ou outro, prefiro fazer linha por linha

1 curtida

No mercado isso não importa, mas o resultado. Na época do desktop eu nunca precisei estudar dessa forma, senão teria perdido muito tempo com questões que não teria que se preocupar ao produzir algo de verdade.

ate entendo o q vc quer dizer, e sei q mais tarde vou preferir usar softwares de ajuda, mas sei la na minha concepção tenho q entender como as engrenagens se interagem umas com as outras depois posso ate partir para construtores

1 curtida

Entendo, tem esse lado que os mais técnicos gostam, mas pro Negócio o que vale é o resultado.

sim e tb sou professor do básico em uma escola então questões simples como essa tenho que saber

Coloca as configurações do JFrame ao no final(ou pelo menos o setVisible(true)).

public TelaCall() {
        JFrame frame = new JFrame("L'Cubico");

        // BK
        JPanel contentPane = new JPanel();
        contentPane.setBounds(0, 0, 250, 200);
        contentPane.setBackground(new Color(130, 130, 130));
        frame.setContentPane(contentPane);
        contentPane.setLayout(null);

        // textos
        JLabel texto_1 = new JLabel("Alt:");
        texto_1.setBounds(10, 10, 50, 25);
        frame.getContentPane().add(texto_1);

        JTextField textField1 = new JTextField();
        textField1.setBounds(5, 100, 70, 30);
        frame.getContentPane().add(textField1);

        // Botão
        JButton botao = new JButton("Calcular");
        botao.setBounds(70, 60, 100, 25);
        frame.getContentPane().add(botao);

        frame.setSize(500,  500);
        frame.setLocationRelativeTo(null);
        frame.setResizable(false);
        frame.setLayout(null);
        frame.setVisible(true);
    }

Por algum motivo o Java não consegue renderizar os elementos corretamente se o JFrame for setado como visível primeiro.

1 curtida

:woozy_face: huee, pensei nessa possibilidade, seguindo a ordem de leitura… fiz tantas trocas não vi resultado, mas fui fazer isso agora e deu certo :scream_cat: obrigado brother!

1 curtida