Foros del Web » Programación para mayores de 30 ;) » Java »

Mostrar Texto textField

Estas en el tema de Mostrar Texto textField en el foro de Java en Foros del Web. Hola,me gustaria haceros una consulta.Soy nuevo y la verdad no controlo muy bien el windows builder.Me gustaria saber como puedo mostrar en un JtextField una ...
  #1 (permalink)  
Antiguo 29/10/2009, 07:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Mostrar Texto textField

Hola,me gustaria haceros una consulta.Soy nuevo y la verdad no controlo muy bien el windows builder.Me gustaria saber como puedo mostrar en un JtextField una cadena de texto.Mi problema reside en que la muestro pero todo seguido,los datos los coge un de .txt en el cual los datos vienen como una columna,pero no consigo que se muestren bien,me muestra el choro entero...¿Hay alguna manera de mostrarlo bien?Yo he estado utilizando:

Código:
while ((leido = bf.readLine()) != null) {
			
						
			leido=bf.readLine();
			todo=todo+leido;
			textField.setText(textField.getText()+leido);
			}
                                                textField.setText(todo);
Espero vuestras sugerencias.

Gracias de antemano.
  #2 (permalink)  
Antiguo 29/10/2009, 10:08
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 16 años
Puntos: 3
Respuesta: Mostrar Texto textField

prueba agregandole esto:

Código:
while ((leido = bf.readLine()) != null) {
			
						
			leido=bf.readLine();
			todo=todo+leido+"\n";
			textField.setText(textField.getText()+leido);
			}
                                                textField.setText(todo);

saludos
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
  #3 (permalink)  
Antiguo 29/10/2009, 12:47
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

Lo he probado y sigue mostrando la ristra seguida,aparecen los cinco datos:23.2553535 24.344434 25.554676 lo mismo es porque los numeros son muy largos...pero aun asi no los pone unos debajo de los otros...Aun asi muchas gracias por tu interes.
  #4 (permalink)  
Antiguo 29/10/2009, 14:15
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Me parece que en un JTextField no se puede incluir más de una línea. Prueba con JTextArea, pero hay que incluirlo dentro de un JScrollPane para que aparezcan las barras de desplazamiento.

Un saludo.
  #5 (permalink)  
Antiguo 29/10/2009, 15:04
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

Cita:
Iniciado por Ingloim Ver Mensaje
Me parece que en un JTextField no se puede incluir más de una línea. Prueba con JTextArea, pero hay que incluirlo dentro de un JScrollPane para que aparezcan las barras de desplazamiento.

Un saludo.
Entonces utilizo el JTextArea?pero no creo que haga fatal un JScrollPane son solo 5 datos en columna...Y sabes cual es el metodo para introducir texto en un JtextArea?es igual que en el de JTextField?

Un saludo y gracias por tu respuesta.
  #6 (permalink)  
Antiguo 29/10/2009, 15:42
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Cita:
Iniciado por EL_TRITU Ver Mensaje
Entonces utilizo el JTextArea?pero no creo que haga fatal un JScrollPane son solo 5 datos en columna...Y sabes cual es el metodo para introducir texto en un JtextArea?es igual que en el de JTextField?

Un saludo y gracias por tu respuesta.
Sí, también lleva los métodos setText y getText.

Un saludo.
  #7 (permalink)  
Antiguo 29/10/2009, 15:47
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

He cambiado por JtextArea,y luego el codigo que me ha proporcionado DiabloGuardian pero me sigue apareciendo en horizontal todos los datos...uffff

Un saludo.
  #8 (permalink)  
Antiguo 30/10/2009, 05:28
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Acabo de probar algunas cosillas.

Con un JTextArea no hay problema al incluir el "\n". He añadido un scroll simple, que sólo aparece cuando se superan el número de líneas mostradas. Todo eso tiene más opciones, como mostrar scroll horizontal y vertical, sólo cuando sea necesario, o deshabilitarlo, etc., pero lo básico está.

Código:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Prueba extends JDialog{
	
	private static final long serialVersionUID = 7082453483732076013L;

	private JTextArea area;
	private JTextField texto;
	private JButton boton;
	private JScrollPane scroll;
	
	private JPanel panelInferior;
	
	private int cont = 1;
	
	public void inicializa (){
		area = new JTextArea();
		boton = new JButton ("AGREGAR");
		texto = new JTextField ("Inserte texto y pulse agregar...");
		
		scroll = new JScrollPane(area);

		panelInferior = new JPanel ();
		panelInferior.setLayout(new GridLayout(2,1));
		
		panelInferior.add(texto);
		panelInferior.add(boton);
		
		super.setLayout(new BorderLayout());
		super.add(scroll, BorderLayout.CENTER);
		super.add(panelInferior, BorderLayout.SOUTH);
		
		this.manejadores();
		
		super.setSize(300, 300);
		super.setTitle("Prueba JTextArea");
		super.setLocationRelativeTo(null);
		super.setResizable(false);
	}
	
	public void manejadores (){
		boton.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent evento) {
				area.setText(area.getText() + cont + ". " + texto.getText() + "\n");
				cont++;
			}			
		});
		
		super.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
	}
	public static void main (String[] args) throws Exception{
		Prueba p = new Prueba();
		
		p.inicializa();
		p.setVisible(true);
	}
}
Insertas texto en el JTextField y al darle a agregar se incluye en el JTextArea creando una nueva línea.

Espero que te sirva.
  #9 (permalink)  
Antiguo 30/10/2009, 10:33
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

A ver espero explicarme...Yo cojo los datos de .txt...entonces lo que queria es que fuera leyendo y que los mostrara en el JtextArea...es decir tengo mi datos.txt con cinco datos en una columna y luego los muestro en el jTextArea...los datos del documento si los lee bien pero a la hora de mostrarlos se ve que es lo que hago mal...Muchas gracias por tomarte las molestias,lo mismo podria reutilizar algo de tu codigo para mi fin,lo unico que eso solo tendria que mostrarlo en el jTextArea.

Un saludo y gracias de nuevo.

Edito:cada dato lo voy metiendo en un String,no se si es lo adecuado.

Última edición por EL_TRITU; 30/10/2009 a las 10:35 Razón: Mas informacion.
  #10 (permalink)  
Antiguo 30/10/2009, 11:35
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Ok, si pones el código entero lo echo un vistazo.

El código que te puse era para demostrar que el JTextArea recoge el salto de linea sin problema.
  #11 (permalink)  
Antiguo 30/10/2009, 13:03
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

Mira este es mi codigo:

Código:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JList;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class Aplicacion2 extends JFrame {

	private JTextArea textArea;
	private JList list;
	/**
	 * Launch the application
	 * @param args
	 */
	public static void main(String args[]) {
		try {
			Aplicacion frame = new Aplicacion();
			frame.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the frame
	 */
	public Aplicacion2() {
		super();
		getContentPane().setLayout(null);
		setBounds(100, 100, 500, 375);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		list = new JList();
		String []listado=new String[8];
		listado[0]="Temperatura Exterior";
		listado[1]="Humedad Relativa Exterior";
		listado[2]="Velocidad Viento Exterior";
		listado[3]="Direccion Viento Exteriror";
		listado[4]="Lluvia";
		listado[5]="CO2 Exterior";
		listado[6]="Radiacion global Exterior";
		listado[7]="Radiacion par Exterior";
		list.setBounds(45, 58, 143, 168);
		getContentPane().add(list);
		list.setModel(new DefaultComboBoxModel(listado));

		
		final JButton predecirButton = new JButton();
		predecirButton.addMouseListener(new MouseAdapter() {
			public void mousePressed(final MouseEvent arg0) {
				
				ejecutarArchivo();
					
				
				
			}
		});
		predecirButton.setText("Predecir");
		predecirButton.setBounds(220, 248, 114, 31);
		getContentPane().add(predecirButton);

		final JButton salirButton = new JButton();
		salirButton.addMouseListener(new MouseAdapter() {
			public void mousePressed(final MouseEvent arg0) {
				cerrarVentana();
			}
		});
		salirButton.setText("Salir");
		salirButton.setBounds(376, 291, 106, 26);
		getContentPane().add(salirButton);

		textArea = new JTextArea();
		textArea.setEditable(false);
		textArea.setBounds(313, 58, 153, 168);
		getContentPane().add(textArea);
		//
	}
	
	public void ejecutarArchivo(){
		
		String programa=null;
		
		programa=list.getSelectedValue().toString();
		Runtime aplicacion=Runtime.getRuntime();
		//System.out.println(programa);
		
		try{
		if(programa.compareTo("Temperatura Exterior")==0){
			
			System.out.println("predice");
			
				aplicacion.exec("C:/Archivos de programa/R/R-2.9.2/bin/R.exe /K C:/Documents and Settings/Ignacio2/Escritorio/ProyectoR/predicciones/preTemp.R");
				mostrarDatos("C:\\Temp\\pre2.txt");
			} 
	
		if(programa.compareTo("Humedad Relativa Exterior")==0){
			aplicacion.exec("C:/Archivos de programa/R/R-2.9.2/bin/R.exe /K C:/Documents and Settings/Ignacio2/Escritorio/ProyectoR/predicciones/preHume.R");
			mostrarDatos("C:\\Temp\\preHu.txt");
			//System.out.println("predice2");
		}
		
	}
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//mostrarDatos();
		
	}
	
	public void mostrarDatos(String nombreFichero) throws IOException{
	
		String leido=null;
		//DataInputStream archivo;
		File archivoLectura=new File (nombreFichero);
		FileReader fr=new FileReader(archivoLectura);
		BufferedReader bf= new BufferedReader(fr); 
		String todo=null;
		leido=bf.readLine();
		
		try {
			//archivo=new DataInputStream(new FileInputStream(direccion));
			//leido=archivo.readLine();
			//while(leido!=null){
			while (leido!= null) {
				// final  String newline = "\n";

				
				//leido=bf.readLine();
				//todo=todo+leido+"\n";
				textArea.append(leido+"\n");
				textArea.setText(leido);
				//textArea.setText(textArea.getText()+leido);
				leido=bf.readLine();
				
				}
	            //textArea.setText(todo);
	           // leido=bf.readLine();
	           
		
		 
			//textField.setText(textField.getText()+leido);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		
	}
	public void cerrarVentana(){
		this.dispose();
	}
	
	

}
El mostrar datos se supone que coge la informacion del archivo cuando le doy al boton,esta algo tocado porque he hecho mil pruebas.A ver si con el codigo lo expongo algo mas claro.

Gracias y un saludo.
  #12 (permalink)  
Antiguo 30/10/2009, 13:29
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Pues probando tu código (Salvo algunos pequeños ajustes por no tener los archivos que llamas en los exec) a mi me funciona todo y muestra los datos en columna. Tan sólo en la parte del while, donde muestras los datos, he dejado esto:

Código:
File archivoLectura = new File(nombreFichero);
FileReader fr = new FileReader(archivoLectura);
BufferedReader bf = new BufferedReader(fr);
String todo = null;
leido = bf.readLine();

try {
	while (leido != null) {
		textArea.append(leido + "\n");
		textArea.setText(leido);
		textArea.setText(textArea.getText()+leido);
		leido = bf.readLine();
	}
} catch (FileNotFoundException e) {
	e.printStackTrace();
}
Como lo tenías, cada vez que se hacía una iteración del bucle, se mostraba siempre la última.

Lo que he hecho es comentar la llamada al exec dentro del if de "Temperatura exterior", que supongo que sería la encargada de generar el archivo a mostrar, y crearme dicho archivo manualmente, para que al invocar "Predecir" con "Temperatura exterior" seleccionada tire de ese fichero.
  #13 (permalink)  
Antiguo 30/10/2009, 14:01
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

Pues no se que pasa sera por el archivo mio...porque como lo crea otro programa...Pero es que he cogido otro archivo para probarlo asi aunque no me sirviera y me muestra el ultimo valor por duplicado,no entiendo porque...Me estoy volviendo loco xDD.El otro archivo quedaria asi:

25
34
56
76
Y estos datos los guardo en un prueba.txt.Pues me muestra con el codigo que me has dejado esto: 7676

Última edición por EL_TRITU; 30/10/2009 a las 14:10 Razón: Informacion
  #14 (permalink)  
Antiguo 30/10/2009, 14:15
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Perdón, fallo mio, jeje:

Código:
while (leido != null) {
	textArea.append(leido + "\n");
	leido = bf.readLine();
}
Prueba con esto. Se me coló antes el código.
  #15 (permalink)  
Antiguo 30/10/2009, 14:36
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Mostrar Texto textField

uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu uuuuuuuf Por fin!!!muuuuuuuuuuuuuuuchisimas gracias!!!!Me acabas de alegrar el fin de semana.Que ya era cabezoneria.De verdad gracias.

Un saludo.
  #16 (permalink)  
Antiguo 31/10/2009, 02:49
Avatar de Ingloim  
Fecha de Ingreso: octubre-2009
Ubicación: España
Mensajes: 14
Antigüedad: 15 años
Puntos: 1
Respuesta: Mostrar Texto textField

Cita:
Iniciado por EL_TRITU Ver Mensaje
uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu uuuuuuuf Por fin!!!muuuuuuuuuuuuuuuchisimas gracias!!!!Me acabas de alegrar el fin de semana.Que ya era cabezoneria.De verdad gracias.

Un saludo.
Me alegro de que lo hayamos sacado por fin, jeje.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:04.