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

Duda!

Estas en el tema de Duda! en el foro de Java en Foros del Web. Hola amigos foreros, Tengo una duda, en primer lugar no estoy muy puesto en interfaces gráficas...Intentaré explicarlo lo mejor posible. Yo tengo una aplicación con ...
  #1 (permalink)  
Antiguo 10/02/2010, 04:08
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años
Puntos: 0
Duda!

Hola amigos foreros,

Tengo una duda, en primer lugar no estoy muy puesto en interfaces gráficas...Intentaré explicarlo lo mejor posible. Yo tengo una aplicación con una serie de botones, etc.Y uno de esos botones se encarga de cargar una clase java donde tengo un programa.En ese programa te pide una serie de datos, como son: introducir una hora, minutos, un incremento...Pero a la hora de introducirlos pues se queda algo digamos "chapuzero" porque se introducen por consola, me gustaría que lo de poder introducir la hora, minutos, incremento, pues se si puede hacer los dos primero que aparezca una lista, es decir para las horas desde 00:00 hasta las 23:59 y los minutos desde 1:60 y el ultimo campo simplemente que el usuario lo introduzca por ejemplo en JtextField y de un enter y lo tome. No sé si lo que pido es una utopía o simplemente que soy demasiado noob. Os dejo el código de la clase que se ejecuta al pulsar el boton, eso para hacerlo fetén debería estar integrado en mi aplicación.

Código:
Código:
import java.io.*;
import java.util.StringTokenizer;

//import javax.swing.JFileChooser;

public class plantillaFinal {
	
	public static void main( String [] args) throws IOException{
		
		String entrada;
		int hora,minutos,intervalo,valorRegistro;
		System.out.println("Dime la hora en formato 24h:");
		BufferedReader cadena=new BufferedReader(new InputStreamReader(System.in));
		entrada=cadena.readLine();
		hora=Integer.parseInt(entrada);
		while(hora<0 || hora>23){
			System.out.println("Hora fuera de rango,Por favor introduzca un valor entre 0 y 23:");
			//BufferedReader cadena2=new BufferedReader(new InputStreamReader(System.in));
			entrada=cadena.readLine();
			hora=Integer.parseInt(entrada);
		}
		//hora=Integer.parseInt(entrada);
		//hora=System.in.read();
		System.out.println("Dime los minutos:");
		entrada=cadena.readLine();
		//minutos=System.in.read();
		minutos=Integer.parseInt(entrada);
		while(minutos<0 || minutos>59){
			System.out.println("Minutos fuera de rango,Por favor introduzca un valor entre 0 y 59:");
			//BufferedReader cadena2=new BufferedReader(new InputStreamReader(System.in));
			entrada=cadena.readLine();
			minutos=Integer.parseInt(entrada);
		}
		
		System.out.println("Dime el valor del intervalo que quieres:");
		entrada=cadena.readLine();
		intervalo=Integer.parseInt(entrada);
		while(intervalo<0 || intervalo>1440){
			System.out.println("Intervalo fuera de rango,Por favor introduzca un valor entre 0 y 59:");
			//BufferedReader cadena2=new BufferedReader(new InputStreamReader(System.in));
			entrada=cadena.readLine();
			intervalo=Integer.parseInt(entrada);
		}
		//intervalo=System.in.read();
		
		valorRegistro=((hora*60+minutos)-intervalo);
		
		System.out.println("Introduzca la ruta de los datos de entrada:");
		//JFileChooser fileChooser = new JFileChooser("C:\\");
		//int seleccion = fileChooser.showOpenDialog(this);
		//if(seleccion == JFileChooser.APPROVE_OPTION)
			//fichero = chooser.getSelectedFile();

		entrada=cadena.readLine();
		
		
		escribir("C:\\Documents and Settings\\Ignacio2\\Escritorio\\datos_R.txt", "Fecha, Hora, Temp Ext, Humedad Relativa Ext., Velocidad Viento Ext., Direccion Viento Ext., Lluvia,CO2 Ext., Radiacion Global Ext., Radiacion Par Ext.\n");
		try{
		//nuevoLeer("C:\\Documents and Settings\\Ignacio2\\Escritorio\\5_9_2004.txt",valorRegistro,intervalo);
			nuevoLeer(entrada,valorRegistro,intervalo);
		}
		catch(Exception e){
			System.out.println("El registro al que quiere acceder aun no se encuentra en el archivo.");
		
		}
		
		//leerEscribirCinco("C:\\Documents and Settings\\Ignacio2\\Escritorio\\2_9_2004.txt", "C:\\Documents and Settings\\Ignacio2\\Escritorio\\mierda2.txt");
		
		

	
	}  //FIN MAIN


	
	
	
		public static void escribir(String nombreArch, String dato){
		
		 	FileWriter fichero = null;
	        PrintWriter pw = null;
	        try
	        {
	            fichero = new FileWriter(nombreArch,true);//lo ponemos a true para que vaya añadiendo
	            pw = new PrintWriter(fichero);				//alfinal del archivo si esta creado ya.
	      
	            pw.print(dato);

	        } catch (Exception e) {
	            e.printStackTrace();
	        } finally {
	           try {
	           // Nuevamente aprovechamos el finally para 
	           // asegurarnos que se cierra el fichero.
	           if (null != fichero)
	              fichero.close();
	           } catch (Exception e2) {
	              e2.printStackTrace();
	           }
	        }
	
		}//FIN ESCRIBIR
		
		
		
		
		
	/*	public static void leer(String nombreFichero) throws IOException{
			
			String cadena;
			
			File archivoLectura=new File (nombreFichero);
			FileReader fr=new FileReader(archivoLectura);
			BufferedReader bf= new BufferedReader(fr); 
			
			
			cadena=bf.readLine();
			
		
			
			while(cadena!=null)
			{
				//StringTokenizer token=new StringTokenizer(cadena,"  ");
				StringTokenizer token=new StringTokenizer(cadena,"	 ");
				for(int i=0;i<10;i++)
				{
					if(i<9)
					escribir("C:/DATOS FORMATEADOS/05_09_2007.txt",token.nextToken()+ ",");
					else
						escribir("C:/DATOS FORMATEADOS/05_09_2007.txt",token.nextToken());
				}
				escribir("C:/DATOS FORMATEADOS/05_09_2007.txt","\n");
				cadena=bf.readLine();
			}
			
		}//FIN LEER
	*/	
		
		public static void nuevoLeer(String nombreFichero,int valorRegistro,int intervalo) throws IOException{
			
			String cadena;
			
			File archivoLectura=new File (nombreFichero);
			FileReader fr=new FileReader(archivoLectura);
			BufferedReader bf= new BufferedReader(fr); 
			try{
			for(int i=0;i<valorRegistro;i++)
			{	
				cadena=bf.readLine();
				
			}
			
		
			cadena=bf.readLine();
			for(int j=0;j<intervalo+1;j++)//FOR PARA ESCRIBIR SOLO EL INTERVALO
			{	
				System.out.println(cadena);
				//StringTokenizer token=new StringTokenizer(cadena,"  ");
				StringTokenizer token=new StringTokenizer(cadena,"	 ");
				for(int i=0;i<10;i++)
				{
					if(i<9)
					escribir("C:\\Documents and Settings\\Ignacio2\\Escritorio\\datos_R.txt",token.nextToken()+ ",");
					else
						escribir("C:\\Documents and Settings\\Ignacio2\\Escritorio\\datos_R.txt",token.nextToken());
				}
				escribir("C:\\Documents and Settings\\Ignacio2\\Escritorio\\datos_R.txt","\n");
				cadena=bf.readLine();
			}//FIN FOR QUE ESCRIBE SOLO EL INTERVALO QUE LE DECIMOS
			}
			catch(IOException e){
				e.printStackTrace();
				
			}
			 finally {
		           try {
		           // Nuevamente aprovechamos el finally para 
		           // asegurarnos que se cierra el fichero.
		           if (null != fr)
		              fr.close();
		           } catch (Exception e2) {
		              e2.printStackTrace();
		           }
		        }
		}//FIN LEER
	
	/*	public static void leerEscribirCinco(String nombreFicheroLeer, String nombreArchEscribir) throws IOException{
			
			String cadena;
			
			File archivoLectura=new File (nombreFicheroLeer);
			FileReader fr=new FileReader(archivoLectura);
			BufferedReader bf= new BufferedReader(fr); 
			
			
		 	FileWriter fichero = null;
	        PrintWriter pw = null;
	        try
	        {
	            fichero = new FileWriter(nombreArchEscribir,true);
	            pw = new PrintWriter(fichero);
	     
	            for(int i=0;i<5;i++)
	            {
	            cadena=bf.readLine();
	            pw.print(cadena+"\n");
	            }

	        } catch (Exception e) {
	            e.printStackTrace();
	        } finally {
	           try {
	           // Nuevamente aprovechamos el finally para 
	           // asegurarnos que se cierra el fichero.
	           if (null != fichero)
	              fichero.close();
	           } catch (Exception e2) {
	              e2.printStackTrace();
	           }
	        }
	
		}//FIN LEERESCRIBIR
		*/
}//FIN CLASE
Un saludo y gracias por vuestras respuestas.

P.D. Este código funciona bien.
  #2 (permalink)  
Antiguo 10/02/2010, 04:29
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años
Puntos: 0
Respuesta: Duda!

Bueno he encontrado una solución para que elementos utilizar para las horas y minutos, estaría bien un JComboBox??para el incremento utilizo un JtextField?Pero lo que no se es como coger esos datos que me dan para poder pasarlos a al programa que veis arriba sin necesidad de que los introduzca otra vez el usuario...
  #3 (permalink)  
Antiguo 11/02/2010, 04:35
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años
Puntos: 0
Respuesta: Duda!

No se le ocurre a nadie nada...
  #4 (permalink)  
Antiguo 14/02/2010, 08:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 54
Antigüedad: 17 años
Puntos: 0
Respuesta: Duda!

Simplemente escribo para decir que he conseguido hacerlo.Os pongo como lo he hecho por si a alguien le sirve,he utilizado dos JComboBox para la lista de minutos y horas y un JtextField para el intervalo.Y funciona perfectamente.

Un saludo!!

Etiquetas: Ninguno
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 18:08.