Ajuda basica

5 respostas
victor984

Alguem pode me dar um exemplo de um programinha que tenha JButton , só pra aparecer na tela 1 botão , valeu

5 Respostas

R
import java.awt.Container;

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


public class Janela extends JFrame{

	private JButton btOK;

	public Janela (String titulo){
		super(titulo);
		
		Container c = this.getContentPane();
		c.setLayout(null);


		setSize(380, 270);
		setResizable(false);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
		this.botao(c);
}
	public void botao(Container c){
		this.btOK = new JButton("Ok");
		this.btOK.setBounds(115, 200, 60, 20);
		c.add(this.btOK);
		
		
	}
}
public class Main {
	public static void main(String[] args) {
		
	
Janela j = new Janela("Botao");

}}

Na janela só contém o botão sem nenhuma ação ... é o que vocÊ quer fazer se não for pesquise sobre eventos...teste o código e coloque as dúvidas aqui

pedrinho20

Segue um exemplo.

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

public class ExemploButton extends JFrame {

    private JButton botao;

    public ExemploButton() {

        botao = new JButton("Este é o JButton"); // Instancia do JButton
        botao.setBounds(10, 20, 150, 20); // Localização do JButton no JFrame

        setTitle("Exemplo - JButton"); // Titulo da janela
        setSize(800, 600); // Tamanho da Janela
        setVisible(true); // Visivel = true
        setLayout(null); // Layout do JFrame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Encerra o processo ao sair

        add(botao); // Adiciona o botão ao JFrame
    }
    public static void main(String[] args) {
        new ExemploButton();
    }
}
R
Se o botão não estiver aparecendo em nenhum dos exemplos , tente colocar , no exemplo 1
j.repaint
e no outro exemplo crie
ExemploButton e =new ExemploButton();
e.repaint();
ops
ViniGodoy

Os dois exemplos cometem o mesmo erro grave: não se deve chamar setVisible no construtor de JFrame.
Isso porque não se deve tornar visível um Frame que não tenha sido completamente construído.

Alguns componentes podem não aparecer o que, no melhor dos casos, força o repaint() que o colega comentou. No pior, pode simplesmente dar crash em sua aplicação, ou gerar um bug de layout que só ocorre em um determinado sistema operacional (provavelmente o do cliente). Sempre desconfie se você estiver chamando repaint() diretamente em seu código. Uma aplicação Swing não deveria jamais chamar esse método.

Além disso, é uma boa prática deixar para quem cria o formulário a escolha de quando essa pessoa quer deixa-lo visível. Assim, formulários pesados podem ser carregados durante o "loading" da aplicação, sem que necessariamente saiam aparecendo na tela.

Um exemplo de código corrigido:

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

public class ExemploButton extends JFrame {

    private JButton botao;

    public ExemploButton() {
        setTitle("Exemplo - JButton"); // Titulo da janela
        setSize(800, 600); // Tamanho da Janela
        setLayout(null); // Layout do JFrame
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Encerra o processo ao sair

        botao = new JButton("Este é o JButton"); // Instancia do JButton
        botao.setBounds(10, 20, 150, 20); // Localização do JButton no JFrame
        add(botao); // Adiciona o botão ao JFrame
    }
    public static void main(String[] args) {
        new ExemploButton().setVisible(true);
    }
}

Claro, esse código tem outras más práticas, como a de usar null layout. É comprensível pois esse é um exemplo mega simples. Numa aplicação real, jamais faça isso, você precisará usar gerenciadores de layout.

Andre_Rosa

http://www.vivaolinux.com.br/artigo/Trabalhando-com-a-interface-grafica-em-Java?pagina=4

Criado 12 de junho de 2011
Ultima resposta 12 de jun. de 2011
Respostas 5
Participantes 5