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:
Un saludo y gracias por vuestras respuestas.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
P.D. Este código funciona bien.