Я создаю персональный Java-терминал, и мне нужно, чтобы он сделал пару вещей, которые я сейчас не совсем понимаю. Мне нужно, чтобы программа прослушивала то, что вводится в JTextArea, и при этом знала, что программа всегда будет отображать
[USERNAME]@[OPERATING SYSTEM]:~$
когда нажата "Enter". И мне также нужна программа, чтобы установить часть, как сказано выше, чтобы она была недоступна для редактирования, и чтобы допустимый ввод символов был установлен после постоянного объявления.
Если кто-то может помочь мне с этим, моя программа находится ниже, то есть код для слушателя, который, скорее всего, потребует много редактирования.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class testGUI extends JFrame {
boolean _active = true;
String _username = System.getProperty("user.name").toLowerCase();
String _os = System.getProperty("os.name").trim().toLowerCase();
JTextArea _commandLine = new JTextArea(_username + "@" + _os + ":~$ ");
public testGUI() {
super("Java Terminal");
setSize(800,600);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
GUISetup();
setVisible(true);
}
public void GUISetup() {
add(_commandLine);
_commandLine.addActionListener(new CommandLineListener());
}
public static void main(String[] args) {
new testGUI();
}
}
Код слушателя ниже.
try {
while(_active) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print(_username + "@" + _os + ":~$ ");
String command = br.readLine();
if(command.equals("cf")) {
new commandCreateFile();
} else if(command.equals("cof")) {
new commandCompile();
} else if(command.equals("help")) {
System.out.println("Commands");
System.out.println(" cf - Creates .java files, does not compile.");
System.out.println(" ccf - Creates .java files, compiles on creation.");
System.out.println(" help - Shows help documentation.");
} else if(command.equals("exit")) {
System.out.print("Are you sure you want to exit? (Y/N) ");
String exit = br.readLine();
if(exit.equalsIgnoreCase("y")) {
System.exit(0);
}
} else if(command.isEmpty()) {
// do nothing.
} else {
System.out.println("\"" + command + "\" does not exist. Please review the \"help\" menu");
}
}
} catch(Exception ex) {
System.out.println("There was a problem: " + ex);
}