2012-03-03 80 views
2

我正在創建一個個人Java終端,我需要它來做一些我現在不太瞭解的事情。我需要的程序來聽什麼被輸入到JTextArea中,同時還知道,該方案將始終顯示如何收聽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); 
    } 

回答

3

使用DocumentListener連接到JTextArea'sDocument和連接到Document一個DocumentFilter檢查哪個編輯是允許的。

+0

這我不明白,通過使用JTextArea的文件,我需要附加一個適當的文件嗎? – 2012-03-04 05:22:17