Tentando criar uma GUI

8 respostas
R

Estou tentando criar o form abaixo. Mas só aparece a janela, não aparece o botão nem o campo para digitar o texto.

package testes;

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.*;
import java.awt.event.*;

public class Form_layout3 extends JFrame {

        private JTextField recebe_texto;
        private JButton botao;
        private JPanel painel1;
        private JPanel painel2;
        private JPanel painel3;
        private JLabel texto;

  private void initComponents(){

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600,600);
        setLocation(100,100);
        setTitle("Minha janela");

        texto = new JLabel();
        texto.setText("Texto Exemplo");

        recebe_texto = new JTextField();
        recebe_texto.setText("Digite seu nome");

        botao = new JButton();
        botao.setText("Botão");
        botao.setMnemonic('E');
        botao.addActionListener(new BotaoListener());

        painel1 = new JPanel();
        painel1.setBackground(Color.BLUE);

        painel2 = new JPanel();
        painel2.setBackground(Color.YELLOW);

        painel3 = new JPanel();
        painel3.setBackground(Color.RED);

        painel1.add(texto);
        painel2.add(recebe_texto);
        painel3.add(botao);

        getContentPane().add(BorderLayout.NORTH, painel1);
        getContentPane().add(BorderLayout.CENTER, painel2);
        getContentPane().add(BorderLayout.SOUTH, painel3);

        setLocationRelativeTo(null); // centralizar
        setVisible(true);
  }
  public static void main(String[] args) {
    Form_layout3 janela = new Form_layout3();
    janela.setVisible(true);
    }

  class BotaoListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(null,"Texto digitado: " + recebe_texto.getText() ,"Aviso",JOptionPane.INFORMATION_MESSAGE);
      }
    }


}

8 Respostas

felipehand

Cara, não manjo absolutamente nada de GUIs… num sei se vou falar bobagem
Mas num tem que setar o ‘visible’ dos componentes como true?

G

Booa tarde !

Olha, pelo que eu entendi, para voce inicializar os componentes voce usou o método initComponents() né ?

entao, lá na declaraçao do método main, voce devia ter chamado o initComponents. ( janela.initComponents(); )

Ou se voce quiser que ele faca automaticamente quando voce instanciar seu objeto, em vez de inicializar
no método initComponents, coloque as instruções que estão no método initComponents() no construtor de Form_layout3.

Raulen_Rodrigues_da_
package testes;   
  
import java.awt.BorderLayout;   
import java.awt.Color;   
import javax.swing.*;   
import java.awt.event.*;   
  
public class Form_Layout3 extends JFrame {   
  
        private JTextField recebe_texto;   
        private JButton botao;   
        private JPanel painel1;   
        private JPanel painel2;   
        private JPanel painel3;   
        private JLabel texto;   
  //Construtor da Classe
  public Form_Layout3(){
	  
	  super("Form_Layout");
        texto = new JLabel();   
        texto.setText("Texto Exemplo");   
  
        recebe_texto = new JTextField();   
        recebe_texto.setText("Digite seu nome");   
  
        botao = new JButton();   
        botao.setText("Botão");   
        botao.setMnemonic('E');   
        botao.addActionListener(new BotaoListener());   
  
        painel1 = new JPanel();   
        painel1.setBackground(Color.BLUE);   
  
        painel2 = new JPanel();   
        painel2.setBackground(Color.YELLOW);   
  
        painel3 = new JPanel();   
        painel3.setBackground(Color.RED);   
  
        painel1.add(texto);   
        painel2.add(recebe_texto);   
        painel3.add(botao);   
  
        getContentPane().add(BorderLayout.NORTH, painel1);   
        getContentPane().add(BorderLayout.CENTER, painel2);   
        getContentPane().add(BorderLayout.SOUTH, painel3);   
  
        setLocationRelativeTo(null); // centralizar   
        setVisible(true);   
  }   //fim do Construtorda CLasse
  public static void main(String[] args) {   
    Form_Layout3 janela = new Form_Layout3();  
    //usando os métodos do JFrame 
    janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
    janela.setSize(600,600);   
    janela.setVisible(true);   
    }   
  
  class BotaoListener implements ActionListener {   
    public void actionPerformed(ActionEvent e) {   
        JOptionPane.showMessageDialog(null,"Texto digitado: " + recebe_texto.getText() ,"Aviso",JOptionPane.INFORMATION_MESSAGE);   
      }   
    }   
  
  
}

Boa Tarde, segue o código corrigido!

R

Valeu pelas dicas.

Funcionou.

R

Este exemplo, usando o construtor. Não funcionou.

Gerou somente o frame, sem os componentes.

felipehand

Mas, qual dos dois funcionou?
o do guii ou do outro rapaz?

R

Funcionou o do guii.

Raulen_Rodrigues_da_

Não entendi…a que eu postei não funcionou? Quando eu executei ela no meu computador ela gerou um Frame, com a parte de cima azul escrito texto exemplo,no meio está amarelo com um JtextField, e na parte de baixo vermelho com um Botao, e quando Clico no botao , gera o evento, e aparece o JoptionPanecom o que estiver digitado no JTextField.

Eu modifiquei o nome da classe também!=)

Criado 3 de setembro de 2009
Ultima resposta 3 de set. de 2009
Respostas 8
Participantes 4