JavaFX

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

0

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

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:

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:

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1