Adicionar um JTextArea a um Frame?!

13 respostas
P

isso, como adiciono um JTextArea ao Frame, de preferencia alinhando-o de acordo com a dimensao q me convem.

segue as tentativas:
import javax.swing.*;

/**
 * Saulo
 * Data: 21/04/2006
 */

public class JLotomania extends JFrame {
	
	public JLotomania() {
		this.setTitle("JLotomania v0.1b - AS Developer");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(800, 600);
		//this.setLocationRelativeTo(null);
		this.setVisible(true);
		JTextArea jTextArea = new JTextArea(10,15);
		//jTextArea.setSize(new java.awt.Dimension(169,84));
		//jTextArea.setRows(2);
		jTextArea.setText("01 02 03 04 05 06 07 08 09 10");
		//jTextArea.append("11 12 13 14 15 16 17 18 19 20");
		jTextArea.setVisible(true);
		jTextArea.setEnabled(false);
		//this.add(jTextArea);
		getContentPane().add(jTextArea);
				
	}	
	
	public static void main (String arg[]) {
		JFrame.setDefaultLookAndFeelDecorated(true);
		JLotomania lotomania = new JLotomania();
	}
	
}

valeu ate galera...:)

13 Respostas

E
import javax.swing.*;
 import java.awt.*;
 
 /**
  * Saulo
  * Data: 21/04/2006
  */
 
 public class JLotomania extends JFrame {
 	private JTextArea jTextArea;
 	private JPanel panel;
	 
 	public JLotomania() {
		
 		super( "JLotomania v0.1b - AS Developer" );
 		Container container = getContentPane();
 	    panel = new JPanel();
 	    container.add( panel, BorderLayout.CENTER );

 		jTextArea = new JTextArea(10,15);
 		jTextArea.setText("01 02 03 04 05 06 07 08 09 10");
 		jTextArea.setVisible(true);
 		jTextArea.setEnabled(true);
 		panel.add( jTextArea );
		
		setDefaultCloseOperation( EXIT_ON_CLOSE );
		setVisible(false);
 		setSize(800, 600);
 		
 
 				
 	}	
 	
 	public static void main (String arg[]) {
 		JFrame.setDefaultLookAndFeelDecorated(true);
 		JLotomania lotomania = new JLotomania();
 		lotomania.setVisible( true );
 	}
 	
 }

Roda esse código agora!
Flw

P

valeu veim...eh agora para posicionar o JTextArea em um local do panel?! frame?!

escolhe onde mostrar ele...

tais ah tentativa.:
public JLotomania() {
 		
  		super( "JLotomania v0.1b - AS Developer" );
  		Container container = getContentPane();
  	    panel = new JPanel();
  	    //container.add( panel, BorderLayout.CENTER );
  	    container.add(panel);
 
  		jTextArea = new JTextArea();
  		jTextArea.append("01 02 03 04 05 06 07 08 09 10");
  		jTextArea.append("\n11 12 13 14 15 16 17 18 19 20");
  		jTextArea.append("\n21 22 23 24 25 26 27 28 29 30");
  		jTextArea.append("\n31 32 33 34 35 36 37 38 39 40");
  		jTextArea.append("\n41 42 43 44 45 46 47 48 49 50");
  		jTextArea.setVisible(true);
  		jTextArea.setEnabled(true);
  		jTextArea.setSize(new java.awt.Dimension(400,10));
  		panel.add( jTextArea );
 		
 		setDefaultCloseOperation( EXIT_ON_CLOSE );
 		setVisible(false);
  		setSize(400, 300);
  
   	}
valeu..ate mais...
GustavoLaguna
//container.add( panel, BorderLayout.CENTER );

Voce escolheu o lugar pelo layout.

P

GustavoLaguna:
//container.add( panel, BorderLayout.CENTER );

Voce escolheu o lugar pelo layout.

poxa como viste essa linha ta comentada eu nao estou usando border center…quero escolher onde colocar o jtextarea…alguem sabe q propriedade é essa?!

valeu galera…ate.

GustavoLaguna
psykhe:
GustavoLaguna:
//container.add( panel, BorderLayout.CENTER );

Voce escolheu o lugar pelo layout.

poxa como viste essa linha ta comentada eu nao estou usando border center...quero escolher onde colocar o jtextarea...alguem sabe q propriedade é essa?!

valeu galera..ate.

Voce pode fazer isso pelo layout. Existem diversos tipos de layout para conseguir o efeito esperado. Nessa caso usando BorderLayout voce pode escolhar algumas referencias, como norte,sul,leste,oeste,centro.

import javax.swing.*;
  import java.awt.*;
  
  /**
   * Saulo
   * Data: 21/04/2006
   */
  
  public class JLotomania extends JFrame {
  	private JTextArea jTextArea;
  	private JPanel panel;
 	 
public JLotomania() {
  		
   		super( "JLotomania v0.1b - AS Developer" );
   		Container container = getContentPane();
          	panel = new JPanel();
	        //container.add( panel, BorderLayout.CENTER );
	        //container.add( panel, BorderLayout.EAST );
		container.add( panel, BorderLayout.WEST );
		//container.add( panel, BorderLayout.SOUTH );
		//container.add( panel, BorderLayout.NORTH );

  
   		jTextArea = new JTextArea();
   		jTextArea.append("01 02 03 04 05 06 07 08 09 10");
   		jTextArea.append("\n11 12 13 14 15 16 17 18 19 20");
   		jTextArea.append("\n21 22 23 24 25 26 27 28 29 30");
   		jTextArea.append("\n31 32 33 34 35 36 37 38 39 40");
   		jTextArea.append("\n41 42 43 44 45 46 47 48 49 50");
   		jTextArea.setVisible(true);
   		jTextArea.setEnabled(true);
   		jTextArea.setSize(new java.awt.Dimension(400,10));
   		panel.add( jTextArea );
  		
  		setDefaultCloseOperation( EXIT_ON_CLOSE );
  		setVisible(false);
   		setSize(400, 300);
   
    	}	
  	
  	
  	public static void main (String arg[]) {
  		JFrame.setDefaultLookAndFeelDecorated(true);
  		JLotomania lotomania = new JLotomania();
  		lotomania.setVisible( true );
  	}
  	
  }

Retire os comentários e veja os efeitos.

P

quero posiciona-lo na coordenada x, y,…é isso…facil ne?! so nao sei como…
valeu.ate.

GustavoLaguna

psykhe:
quero posiciona-lo na coordenada x, y,…é isso…facil ne?! so nao sei como…
valeu.ate.

Realmente não sei fazer isso. Mas dei uma olhada rápida e vi um método que poderia fazer o que voce quer.

De uma olhada na documentação pra ver se serve mesmo:

jTextArea.setLocation(int x, int y)
P

[quote=GustavoLaguna]

psykhe:
quero posiciona-lo na coordenada x, y,…é isso…facil ne?! so nao sei como…
valeu.ate.

Realmente não sei fazer isso. Mas dei uma olhada rápida e vi um método que poderia fazer o que voce quer.

De uma olhada na documentação pra ver se serve mesmo:

jTextArea.setLocation(int x, int y)

poxa nao funcionou…
deve ser outro propriedade…se alguem souber…fico agradecido…ateh…

Mantu

É o setLocation mesmo, mas só funfa quando o Layout do JFrame é null. Quando o JFrame tem um layout null, vc tem que setar, na mão, o top, left, width e heigth de cada componente. Vc pode fazer isso usando componente.setSize(…) junto com o componente.setLocation(…) ou então usar o componente.setBounds(…) que posiciona e dimensiona o componente de uma vez só.
A vantagem de colocar null no layout do JFrame é que vc tem uma maior flexibilidade e liberdade na distribuição dos componentes. O ruim é que é trabalhoso demais colocar na mão esses valores e pra dar manutenção nisso também é um pesadelo se vc não “amarrar” os valores uns aos outros

GustavoLaguna

Duvida, É assim que o netbenas 5.0 trabalha ?

P
mantu da um exemplo disso com uma JTextArea como a minha...tentei fazer mas nao saiu do lugar...
public JLotomania() {

 		

  		super( "JLotomania v0.1b - AS Developer" );

  		Container container = getContentPane();

  	    panel = new JPanel();

  	    container.add( panel, null);

  	    container.add(panel);

 

  		jTextArea = new JTextArea();

  		jTextArea.append("01 02 03 04 05 06 07 08 09 10");

  		jTextArea.append("\n11 12 13 14 15 16 17 18 19 20");

  		jTextArea.append("\n21 22 23 24 25 26 27 28 29 30");

  		jTextArea.append("\n31 32 33 34 35 36 37 38 39 40");

  		jTextArea.append("\n41 42 43 44 45 46 47 48 49 50");

  		jTextArea.setVisible(true);

  		jTextArea.setEnabled(true);

  		jTextArea.setLocation(10,10);

  		jTextArea.setBounds(10,10,10,10);

  		panel.add( jTextArea );

 		

 		setDefaultCloseOperation( EXIT_ON_CLOSE );

 		setVisible(false);

  		setSize(400, 300);

  

   	}

valeu...ate.

Mantu

Dê uma olhada nesse programinha. Era um exemplo pra um camarada e adapteu pro teu propósito. Quando vc rodar o programa, selecione algo na JTextArea da esquerda e clique no botão limpar da que fica na direita.
Estou anexando um jar. Nele tem o fonte também, ok? Ignore os trechos marcados com:

/* **************************************************
				 * Este método é um dos que realmente te interessam *
				 * **************************************************/

Veja os métodos instanciateComponents() e configGUI()

QQ coisa, poste sua dúvida, ok?

P

so consegui rodar o jar…java -jar nomedoarquivo…agora ve o fonte?! como colocou o jtextarea em tal local nao foi possivel ve…qq coisa aguardo…valeu…ate.

Criado 21 de abril de 2006
Ultima resposta 25 de abr. de 2006
Respostas 13
Participantes 4