kjey Skrevet 17. august 2007 Del Skrevet 17. august 2007 Hei. Har sitti å søkt litt på nettet, men greier altså ikke så finne ut hvordan man kan lage et shell gui til Java. Det jeg rett og slett vil lage er en terminal i Java som kjører linux-kommandoer. Noen som har en ide om hvordan dette kan gjøres, eller en god link? Lenke til kommentar
whoi Skrevet 17. august 2007 Del Skrevet 17. august 2007 Hmm, sjekk ut http://java.sun.com/j2se/1.5.0/docs/api/ja...ng/Process.html Hvis du får kjørt f.eks bash som en prosess, så burde det vel være ganske greit å styre den via input og output metodene. Hadde vært interessant å høre om det går. Lenke til kommentar
kjey Skrevet 17. august 2007 Forfatter Del Skrevet 17. august 2007 Det går ann å kjøre kommandoer i bash via litt java-kode, men det er selve GUI'et jeg trenger hjelp til. Hvordan er det man lager slik at man kan skrive å trykke return, så utfører den kommandoen og hopper ned til neste linje? Uansett, hvis det er av interesse så kan man løse problemet med kjøring av kommandoer slik: Klikk for å se/fjerne innholdet nedenfor import java.io.*; public class Terminal { public static void main( String[] args ) { String temp; String output = ""; try { /* Kjører kommandoen "date" i linux sin terminal */ Process p = Runtime.getRuntime().exec( "date" ); /* Leser hvis kommandoen er riktig */ BufferedReader reader = new BufferedReader ( new InputStreamReader( p.getInputStream() ) ); /* Samler opp output */ while( ( temp = reader.readLine() ) != null ) { output += temp + "\n"; } // Slutt while System.out.println( output ); } catch( Exception e ) { System.out.println(e); } } } Er sikkert ikke av topp kvalitet, men det viser ihvertfall prinsippet. Håper noen kan hjelpe meg med problemet ovenfor Lenke til kommentar
whoi Skrevet 18. august 2007 Del Skrevet 18. august 2007 Jeg skjønner ikke helt hva du mener her. Mener du at du ikke vet hvordan du lager en swing GUI med et par tekstfelter? Eller snakker du egentlig om et konsoll program, slik som du demonstrerte over? Jeg har redigert koden din litt, så den kan kjøre de kommandoene du selv skriver i konsollen. Å endre dette til å bli grafisk burde være veldig enkelt om det er det du er ute etter. Klikk for å se/fjerne innholdet nedenfor import java.io.*; public class Terminal { public static void main( String[] args ) { try { BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) ); boolean run = true; while ( run ) { System.out.print( "Enter command: " ); String command = br.readLine(); if ( !command.equals( "exit" ) ) { Process p = Runtime.getRuntime().exec( command ); BufferedReader reader = new BufferedReader( new InputStreamReader( p.getInputStream() ) ); while ( reader.ready() ) { System.out.println( reader.readLine() ); } reader.close(); } else run = false; } br.close(); System.out.println( "Done..." ); } catch( IOException e ) { System.out.println(e); } } } Lenke til kommentar
kjey Skrevet 18. august 2007 Forfatter Del Skrevet 18. august 2007 Jeg vet greit nok hvordan man lager et enkelt swing, men vet ikke hvordan jeg lager selve kommando-"editoren". Altså den man skriver inn i. Hvordan skal man få til slik at man kan skrive, trykke enter, så utføres kommandoen du har skrevet. Det kommer da ut outputen og du kan fortsette å skrive inn kommandoer. Så her er det altså snakk om å lage selve GUI'et til en terminal. Takk for svar! Lenke til kommentar
whoi Skrevet 18. august 2007 Del Skrevet 18. august 2007 (endret) Hvis du skal ha begge deler i 1 JTextArea, så tror jeg du må knote litt. Hva med å ha en JTextField som du har en ActionListener på. Så skriver du en kommando i den, trykker enter, og da utføres kommandoen og resultatet blir skrevet ut i en JTextArea? Edit: Fant et par linker som du kan titte på. http://forum.java.sun.com/thread.jspa?foru...threadID=779503 http://forum.java.sun.com/thread.jspa?foru...threadID=714491 Endret 18. august 2007 av Blurpy Lenke til kommentar
NevroMance Skrevet 19. august 2007 Del Skrevet 19. august 2007 Jeg vet greit nok hvordan man lager et enkelt swing, men vet ikke hvordan jeg lager selve kommando-"editoren". Altså den man skriver inn i. Hvordan skal man få til slik at man kan skrive, trykke enter, så utføres kommandoen du har skrevet. Det kommer da ut outputen og du kan fortsette å skrive inn kommandoer. Så her er det altså snakk om å lage selve GUI'et til en terminal. Takk for svar! 9307074[/snapback] For å få den til å reagere på tastetrykk som enter må du lage en klasse implementerer ActionListener. Der er det kun en metode: void actionPerformed(ActionEvent e) I denne må du ha en sjekk på om tasten som er trykket på er enter. Nå husker jeg ikke hva enter heter, men en enkel sjekk er: if(e == <enter>) { <Gjør noe> } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå