JFrame e botões textos, how to do?

1 resposta
R
Olá, eu estou com uma duvida a principio muito basica.. o código é esse:
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;

public class Listas extends JFrame /*implements ActionListener*/ {

    public Listas() {
    }
    public void janelaSimples(){
    	
    	
Container cont = getContentPane();    	
    	/* Cria o botão */
final JButton botaoLimpa = new JButton("Limpa");
/* Cria o campo de texto */
final JTextField campoTexto = new JTextField(10);
/* Cria uma janela */
final JFrame janela = new JFrame ("Janela Simples");
janela.pack();
setLocationRelativeTo(null);
janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

/* Adiciona os componentes na janela */
//JPanel painel = new JPanel();;
janela.add (botaoLimpa);
janela.add (campoTexto);
cont.add(janela);
//janela.getContentPane().add(painel);
/* Quando o usuário clicar no botao, limpa o campo de texto */
botaoLimpa.addActionListener (new ActionListener() {
public void actionPerformed (ActionEvent e) {
campoTexto.setText("");
}});
/* Exibe a janela */
janela.setVisible(true);
    	
    }
   public static void main (String args[]){
   	Listas l = new Listas();
   	l.janelaSimples();
   } 
    
}

O que eu quero... colocar o botao (ou texto, combo o que for) direto no JFrame, sem precisar colocar dentro do painel
(como está comentado)... é possível?

Desde de já obrigado

Ricardo

1 Resposta

R

Componentes que não sejam de topo (isto é, praticamente todos os componentes com exceção de JFrame e JDialog) têm necessariamente de ser adicionados a um Container (JPanel é um Container, mas há vários outros). Você pode usar JFrame.add() para adicionar um componente “diretamente” ao JFrame, mas tudo que essa chamada fará é adicionar o componente ao ContentPane contido no JFrame (o ContentPane é área cliente do JFrame).

Criado 22 de maio de 2009
Ultima resposta 22 de mai. de 2009
Respostas 1
Participantes 2