Duvida com JTextField

5 respostas
G

Ola pessoal tenho o seguinte codigo a baixo e gostaria de saber o comando para mim deixar o meu JTextField no lugar que eu queria da minha janela !!

Por exemplo que ele comece no espaço 50,50 da minha tabela !!

import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Soma extends JFrame{
	
	private JTextField campo1 , campo2, campo3;
	private JLabel texto1;
	
	
	public Soma() {
		
		super ("Tela para somar");
		
		Container janela  =  getContentPane();
		janela.setLayout(new FlowLayout());
		
		
		texto1 =  new JLabel ("Digite um número em cada campo.");
		add(texto1);
		
		
	    campo1 =  new JTextField("oi",20);
	    janela.add(campo1);
	 	
	 	
	 	setSize(600,400);
		setVisible(true);
	}
	public static void main(String[] args) {
		
		Soma tela =  new Soma();
		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	
	

}

5 Respostas

G

Niguem pode me da uma força ai ?

F

http://java.sun.com/docs/books/tutorial/uiswing/layout/none.html
http://www.leepoint.net/notes-java/GUI/layouts/nulllayout.html

S

Primeiro tens de definir o layour como null:

janela.setLayout(null);

Depois para inserires o componente na coordenada específica (x,y) fazes assim:

componente.setLocation(50,50);
G

Bom fiz o que vc indicou e n consegui !!

Agora a tela n exibe nem JLabel nem o JTextField!!

O que eu fiz de errado ? pq o meu setLocation n esta funcionando ?

import java.awt.Container; 
import java.awt.FlowLayout; 

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 


public class Soma extends JFrame{ 
    
   private JTextField campo1 , campo2, campo3; 
   private JLabel texto1; 
    
    
   public Soma() { 
       
      super ("Tela para somar"); 
       
      Container janela  =  getContentPane(); 
      janela.setLayout(null); 
       
       
      texto1 =  new JLabel ("Digite um número em cada campo.",10); 
      texto1.setLocation(50, 50);      
      janela.add(texto1); 
       
       
       campo1 =  new JTextField("oi",20); 
       campo1.setLocation(51, 51);
       janela.add(campo1); 
        
        
       setSize(600,400); 
       setVisible(true); 
   } 
   public static void main(String[] args) { 
       
      Soma tela =  new Soma(); 
      tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       
   } 
    
    

}
G

Opentão consegui fazendo assim

import java.awt.Container; 
import java.awt.FlowLayout; 

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 


public class Soma extends JFrame{ 
    
   private JTextField campo1 , campo2, campo3; 
   private JLabel texto1; 
    
    
   public Soma() { 
       
      super ("Tela para somar"); 
       
      JLabel kmLabel = new JLabel("Kilometers");//Note 1
      JLabel teste = new JLabel("Miles");

//      ... Set the positions of components.
      kmLabel.setBounds(5, 10, 62, 16);         //Note 2
      teste.setBounds(6, 11, 63, 50);

//      ... Content panel, layout, add components
      JPanel janela = new JPanel();
      janela.setLayout(null);                  //Note 3
      janela.add(kmLabel);
      janela.add(teste);
      
      
      this.setContentPane(janela); 
      this.setSize(436, 63);   
       setSize(600,400); 
       setVisible(true); 
   } 
   public static void main(String[] args) { 
       
      Soma tela =  new Soma(); 
      tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       
   } 
    
    

}

Alguem pode me explicar ops parametro que o

setBounds(6, 11, 63, 50);

pede ?

Criado 17 de julho de 2007
Ultima resposta 20 de jul. de 2007
Respostas 5
Participantes 3