Duvida de iniciante sobre botões e caixas de texto

6 respostas
Kyuu

Olá pessoal, eu estou com uma duvida um tanto básica, mas que está me incomodando. Meu pai me passou um código-fonte para colocar botões e caixas de texto, até ai tudo bem. Mas ele também pediu para colocar os botões no rodapé da interface e colocar campos de textos dos seguintes tipos: Nome, Endereço (Rua, bairro, cidade, CEP - um edit para cada), Fone Residencial. etc... E é ai que está o problema, pois não sei como fazer isso, será que alguém poderia me dar uma luz por favor. Vou postar o código - fonte que fiz até agora.

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

public class Estudo extends JFrame{
  JTextField texto;  
  JButton novo;
  JButton fim;
  ImageIcon img;
  JTextField texto2;

  public Estudo() {
    super("Estudo Swing");
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    // Cria o JTextField
    img = new ImageIcon("C:/eclipse/eclipse32.gif");
    texto = new JTextField(10);	
    novo = new JButton("Novo");
    fim = new JButton("Fim",img);
    texto2 = new JTextField(10);
     
    
    novo.addActionListener(
    	      new ActionListener(){
    	        public void actionPerformed(ActionEvent e){
    	          JOptionPane.showMessageDialog(null, 
    	            "Fui clicado");
    	        }
    	      }
    	    );
    
    fim.addActionListener(
         new ActionListener(){
           public void actionPerformed(ActionEvent i){
             System.exit(0); 
           }
           }   
            );        

    c.add(novo);
    c.add(fim);

    texto.setHorizontalAlignment(JTextField.LEFT);
    texto2.setHorizontalAlignment(JTextField.LEFT);
   

    c.add(texto);
    c.add(texto2);

    setSize(350, 250);
    setVisible(true);
     
  }
  
  public static void main(String args[]){
    Estudo app = new Estudo();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Se puderem me ajudar, agradeço desde já.

6 Respostas

Nicolas_Fernandes

Olá, Kyuu!

Vamos lá:

  1. Colocar os botões no rodapé do formulário.

Bom, antes de tudo, use o BorderLayout() para o seu formulário.
Depois, você pode criar um painel pro seu rodapé. Dentro deste painel, você coloca os botões que você quer dentro deste painel.

Algo como:

JPanel rodapePanel = new JPanel();

JButton firstButton = new JButton("Um botão");
rodapePanel.add(firstButton);

JButton secondButton = new JButton("Outro botão");
rodapePanel.add(secondButton);

Este painel com os botões você pode setar ao sul do formulário principal.

this.add(rodapePanel, BorderLayout.SOUTH);
  1. Colocar um texto em uma caixa de texto.
myTextBox.setText("Meu texto da caixinha!");

Espero ter ajudado.

[]'s

P

A dúvida do Kyuu não é colocar um texto na caixinha, mas sim um Label identificando aquela caixinha, tipo:
NOME: Aqui a Caixinha

M

Para adicionar algum texto explicativo para os JTextFields, use objetos do tipo JLabel.

Por exemplo:

c.add(new JLabel("Nome:"));
c.add(texto);

c.add(new JLabel("Endereço:"));
c.add(texto2);

Isso geraria algo como:

Nome: |textfield1 aqui| Endereço: |textfield2 aqui|

P
Tentei colocar um Painel no rodapé e não funcionou. Usei o mesmo código de aqui e veja como ficou.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JTextField texto;  
  JButton novo;
  JButton fecha; 
  JTextArea textArea;
  ImageIcon img;
  JPanel painel;
  
  public Estudos() {
    super("Estudos Swing");
    
    
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
    
    img = new ImageIcon("C:/Lixo/MSN.GIF");
    
    // Cria os componentes
    
    painel = new JPanel();
    this.add(painel, BorderLayout.SOUTH);
    
    texto = new JTextField(10);	
    novo = new JButton("Novo");
    painel.add(novo);
    fecha = new JButton("Fechar",img);
    painel.add(fecha);
    textArea = new JTextArea(5,20);
 
    novo.addKeyListener(new KeyAdapter() {     
        public void keyPressed(KeyEvent e){     
           textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ?     
                 "Você pressionou Enter" : " Você não pressionou enter");     
        }     
     }   
 );  
    
    novo.addActionListener(
    	      new ActionListener(){
    	        public void actionPerformed(ActionEvent e){
    	          JOptionPane.showMessageDialog(null, 
    	            "Fui clicado");
    	        }
    	      }
    	    );
    fecha.addActionListener(
  	      new ActionListener(){
  	        public void actionPerformed(ActionEvent e){
  	        	System.exit(0);
  	        }
  	      }
  	    );

    
    //c.add(novo);
    //c.add(fecha);
    //c.add(textArea);
    c.add(painel);
    
    // alinha o texto à direita
    texto.setHorizontalAlignment(JTextField.LEFT);

    // para alinhar à esquerda use JTextField.LEFT
    // para alinhar ao centro use JTextField.CENTER    

    // Adiciona o JTextField à janela
    c.add(new JLabel("Novo:"));
    c.add(texto);  
    
    

    setSize(800, 600);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}
P

ainda não consegui

R
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudo extends JFrame{
  JTextField texto;  
  JButton novo;
  JButton fecha; 
  JTextArea textArea;
  ImageIcon img;
  JPanel painel;
  
  public  Estudo() {
    super("Estudos Swing");
     
    // Cria os componentes
    
    painel = new JPanel();
    texto = new JTextField(10);	
    novo = new JButton("Novo");
    painel.add(novo);
    fecha = new JButton("Fechar",img);
    painel.add(fecha);
    painel.add(novo);
    painel.add(texto);
    this.getContentPane().add(BorderLayout.SOUTH,painel);
    
   // alinha o texto à direita
    texto.setHorizontalAlignment(JTextField.LEFT);

    // para alinhar à esquerda use JTextField.LEFT
    // para alinhar ao centro use JTextField.CENTER    

    // Adiciona o JTextField à janela
  
    novo.addKeyListener(new KeyAdapter() {     
        public void keyPressed(KeyEvent e){     
           textArea.setText(e.getKeyCode() == KeyEvent.VK_ENTER ?     
                 "Você pressionou Enter" : " Você não pressionou enter");     
        }     
     }   
 );  
    
    novo.addActionListener(
    	      new ActionListener(){
    	        public void actionPerformed(ActionEvent e){
    	          JOptionPane.showMessageDialog(null, 
    	            "Fui clicado");
    	        }
    	      }
    	    );
    fecha.addActionListener(
  	      new ActionListener(){
  	        public void actionPerformed(ActionEvent e){
  	        	System.exit(0);
  	        }
  	      }
  	    );

    
  
  
    
    

    setSize(800, 600);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudo app = new Estudo();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

assim que você quer?

Criado 1 de outubro de 2009
Ultima resposta 9 de out. de 2009
Respostas 6
Participantes 5