JavaFX

A4
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 8 lat
  • Postów:3
0

Witam,

Napisałem prosty program w java, wykonjący polecenia wprowadzane z poziomu terminala, pod linuksem. Aplikacja uruchamia się jednak w konsoli. Chciałbym aby uruchamiała się w oddzielnym okienku. Mam pomysł aby w tym celu wykorzystać bibliotekę javaFX ale stawiam dopiero pierwsze kroki i nie za bardzo wiem jak "opakować" mój program. Bardzo proszę o pomoc. W załączniku kod

Pozdrawiam
Artur

Patryk27
Nazwij wątek sensownie.
R1
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 lat
  • Postów:208
0

Tu masz dokumentacje JavaFX jest tam masa gotowych przykładów, które można od razu uruchomić i zobaczyć jak działają

TR
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 lata
  • Postów:731
0

co robi ten program?
włącza się, czeka na input, zwraca za każdym razem sysouta i w zasadzie działa tylko polecenie "exit"... I chcesz to jeszcze opakować w JavaFX? :O
Czy coś przeoczyłem?
Twój kod:

Kopiuj
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.PrintStream;
import java.io.InputStreamReader;

public class Shell{
  public static void main(String args[])
  {
  String znak1, znak2, a;
  znak1="Artur_4928_$";
  znak2="Artur_4928_#";

  while(true){
      System.out.print(znak1);

        Scanner in = new Scanner(System.in);
        a = in.nextLine();

	String[] cmdsplit = a.split(" ");
	PrintStream prtStrm = System.out;
	
	String s = null;
	try {
		Runtime r=Runtime.getRuntime();
		Process p=null;
		p=r.exec(cmdsplit);
		BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
		while ((s = stdInput.readLine()) != null) {
			System.out.println(s);
		}
	} catch (Exception e){
		if (a.isEmpty())
	
		continue;
		if (a.matches("^\\s*$")){
		continue;
		}
	if ((cmdsplit[0].equals("exit"))&&(cmdsplit.length==1))
			{
			System.out.println("Do zobaczenia");
				System.exit(0);
			}
		System.out.println("Błędne polecenie: "+a);
		//System.out.println("Błędne polecenie: "+a);
		//System.out.println("Błędne polecenie: "+s);
		//for (int i = 0; i>cmdsplit[0].length; i++{
		 
		//	}

		//System.out.println("Błędne polecenie: "+cmdsplit[0]);
	}
	//System.out.println("Program "+cmdsplit[0]+" zwrócił wartosć "+p.exitValue());
	}
	
	  
  }
}

Kyrie eleison, zamiast łez, z oczu płynie krew ;_;
Może zamiast zabierać się za JavaFX poczytaj o obsłudze wyjątków, bo ten fragment nic nie robi:

Kopiuj
try {
		Runtime r=Runtime.getRuntime();
		Process p=null;
		p=r.exec(cmdsplit);
		BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
		while ((s = stdInput.readLine()) != null) {
			System.out.println(s);
		}
	} catch (Exception e){
		if (a.isEmpty())
	
		continue;
		if (a.matches("^\\s*$")){
		continue;
		}

Przypisujesz do r wartość która nigdzie w kodzie nie jest wykorzystywana? To po co ten kod? (edit: no dobra jest, ale i tak bez sensu)
Następne dwie linie kodu można zapisać w jednej, który i tak nie zadziała, bo robisz "splita" na tablicy Stringów... Dodatkowo używasz Scanner, PrintStream i BufferedReader, które są trzema odrębnymi klasami i nie przekazujesz wartości między nimi...
Proszę adminów o przeniesienie tego wątku do Newbie.


musica curat corpus at animam
edytowany 2x, ostatnio: trojanus

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.