aktuell habe ich ein JFrame mit einem Auswahlmenü (JComboBox). Dort kann ich zwischen mehrern Variablen wählen. Nun möchte ich, dass jedes mal eine andere Ausgabe gemacht wird. Was muss ich dafür tun? Kann mir mal jemand ein Beispiel zurecht machen?
Ausgegeben werden soll das Ergebniss eines anderen JAVA-Programms.
Was hast du bereits gemacht, dann können wir auf deinem Beispiel aufbauen. Des Weiteren verschiedene Java Programme können nicht so einfach miteinander kommunizieren. Da braucht man irgendeine Verbindung (ein Programm ruft das andere auf geht mit Streams/TCP/UDP/WS/...).
try{
htmlWriter =newPrintWriter(newBufferedWriter(newFileWriter("HTML.txt")));// Clever-Tanken IDif(tanke ==01|| tanke ==1){//HalchterURL url =newURL("http://www.clever-tanken.de/tankstelle_details/8142");BufferedReader r =newBufferedReader(newInputStreamReader(url.openStream()));String line =null;while((line=r.readLine())!=null)
htmlWriter.println(line);}// end of ifif(tanke ==02|| tanke ==2){//SchladenURL url =newURL("http://www.clever-tanken.de/tankstelle_details/7870");BufferedReader r =newBufferedReader(newInputStreamReader(url.openStream()));String line =null;while((line=r.readLine())!=null)
htmlWriter.println(line);}// end of ifif(tanke ==03|| tanke ==3){//FloetheURL url =newURL("http://www.clever-tanken.de/tankstelle_details/27052");BufferedReader r =newBufferedReader(newInputStreamReader(url.openStream()));String line =null;while((line=r.readLine())!=null)
htmlWriter.println(line);}// end of if}catch(IOException ioe){
ioe.printStackTrace();}finally{if(htmlWriter !=null){
htmlWriter.flush();
htmlWriter.close();}}
Anschließend wird aus der HTML die enstsprechende Zeile herrausgesucht:
Java:
FileReader html =newFileReader("HTML.txt");BufferedReader br =newBufferedReader(html);String dieselhtml =br.readLine();int dieselzahl =0;while(dieselzahl <= zeile){
dieselhtml = br.readLine();
dieselzahl++;}// end of while
Danach wird die Zeile in einzelne Parts zerlegt damit ich dann den Preis habe "1.489"
Ich bearbeite momentan, deswegen wird er nicht einwandrei funktionieren. Ich habe es in mehrere Methoden unterteilt aber wenn ich am ende der ersten methode "auslesen();" setze gibt er mir nur ein fehler aus... Da bin ich noch am probieren.
Außerdem ist "printGregorianCalendarDate(); " unten auskommentiert weil sonst auch immer ein fehler erscheint.
Der unterste Teil ist dafür da, damit ich mir ein Verlauf der Preise notieren kann.
Was ich möchte ist das der Teil mit der Preis ausgabe im JFrame ausgegeben wird.
Java:
importjava.io.*;importjava.text.DateFormat;importjava.util.Date;importjava.util.GregorianCalendar;importjava.net.URL;importjava.util.Scanner;importjava.net.URL;publicclass beni{publicstaticvoidmain(String[] args)throwsIOException{System.out.println(" Für welche Tankstelle möchten Sie die Preise wissen? ");System.out.println(" ");System.out.println(" 01 - HEM - Halchter");System.out.println(" ");System.out.println(" 02 - HEM - Schladen");System.out.println(" ");System.out.println(" 03 - ARAL - Floethe ");System.out.println(" ");System.out.println(" Angaben ohne gewähr");System.out.println(" ");double tanke =InOut.readDouble(" Bitte Auswahl angeben: ");// HTML auslesendouble zeile =0;String xx ="null";PrintWriter htmlWriter =null;try{
htmlWriter =newPrintWriter(newBufferedWriter(newFileWriter("HTML.txt")));// Clever-Tanken IDif(tanke ==01|| tanke ==1){//HalchterURL url =newURL("http://www.clever-tanken.de/tankstelle_details/8142");BufferedReader r =newBufferedReader(newInputStreamReader(url.openStream()));String line =null;while((line=r.readLine())!=null)
htmlWriter.println(line);
zeile =229;
xx ="Halchter";}// end of ifif(tanke ==02|| tanke ==2){//SchladenURL url =newURL("http://www.clever-tanken.de/tankstelle_details/7870");BufferedReader r =newBufferedReader(newInputStreamReader(url.openStream()));String line =null;while((line=r.readLine())!=null)
htmlWriter.println(line);
zeile =229;
xx ="Schladen";}// end of ifif(tanke ==03|| tanke ==3){//FloetheURL url =newURL("http://www.clever-tanken.de/tankstelle_details/27052");BufferedReader r =newBufferedReader(newInputStreamReader(url.openStream()));String line =null;while((line=r.readLine())!=null)
htmlWriter.println(line);
zeile =227;
xx ="Floethe";}// end of if}catch(IOException ioe){
ioe.printStackTrace();}finally{if(htmlWriter !=null){
htmlWriter.flush();
htmlWriter.close();}}}publicvoid auslesen (String xx,double zeile)throwsIOException{// Zeile auslesen FileReader html =newFileReader("HTML.txt");BufferedReader br =newBufferedReader(html);String dieselhtml =br.readLine();int dieselzahl =0;while(dieselzahl <= zeile){
dieselhtml = br.readLine();
dieselzahl++;}// end of whileString benzinhtml =br.readLine();int benzinzahl =0;while(benzinzahl <=14){
benzinhtml = br.readLine();
benzinzahl++;}// end of while //Benzin auslesenSystem.out.println("");System.out.println(" "+ xx);System.out.println(" _______________");System.out.println(" Super");System.out.println("");String benzinpreis = benzinhtml;String[] bparts = benzinpreis.split("'");String part1benzin = bparts[0];String part2benzin = bparts[1];System.out.println(" "+ part2benzin);System.out.println(" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");//Diesel auslesenSystem.out.println(" _______________");System.out.println(" Diesel");System.out.println("");String dieselpreis = dieselhtml;String[] dparts = dieselpreis.split("'");String part1diesel = dparts[0];String part2diesel = dparts[1];System.out.println(" "+ part2diesel);System.out.println(" ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯");}publicstaticvoid preisVerlauf (String xx,String part2benzin,String part2diesel){//Datum//printGregorianCalendarDate(); //BenzinPrintWriter aWriter =null;try{
aWriter =newPrintWriter(newBufferedWriter(newFileWriter("Verlauf/"+ xx +"/Verlauf.txt",true)));
aWriter.println("Benzin: "+part2benzin +" Euro");}catch(IOException ioe){
ioe.printStackTrace();}finally{if(aWriter !=null){
aWriter.flush();
aWriter.close();}}// end of if//DieselPrintWriter aaWriter =null;try{
aaWriter =newPrintWriter(newBufferedWriter(newFileWriter("Verlauf/"+ xx +"/Verlauf.txt",true)));
aaWriter.println("Diesel: "+part2diesel +" Euro");
aaWriter.println(" ");}catch(IOException ioe){
ioe.printStackTrace();}finally{if(aaWriter !=null){
aaWriter.flush();
aaWriter.close();}}// end of if}staticvoidprintGregorianCalendarDate(String xx){GregorianCalendar now =newGregorianCalendar();DateFormat df =DateFormat.getDateInstance(DateFormat.SHORT);
df =DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM);String zeit =(df.format(now.getTime()));PrintWriter ppWriter =null;try{
ppWriter =newPrintWriter(newBufferedWriter(newFileWriter("Verlauf/"+ xx +"/Verlauf.txt",true)));
ppWriter.println(zeit);}catch(IOException ioe){
ioe.printStackTrace();}finally{if(ppWriter !=null){
ppWriter.flush();
ppWriter.close();}}}}
Also wie hast du dir das vorgestellt? Du hast ein JFrame wo du als erstes auswählen kannst, welche Tankstelle du die Preise aktualisieren und anzeigen möchtest.
Das sollte mittels einer JComboBox funktionieren.
Als Verlaufsanzeige kannst du eine JTextArea verwenden.
Wenn du jeweils die Tanke auswählst aktualisiert sich die Datei mit dem Verlauf, danach lädst du die Datei in deine TextArea.
Im Internet gibt es genügend Tutorials die dir dabei helfen.