2016-03-02 5 views
0

То, что я до сих пор что-то вроде этого:System.readline(), используя текстовое поле

JFrame jframe = new JFrame("Console"); 
JTextArea text=new JTextArea(10,30); 
JScrollPane jScrollPane = new JScrollPane(text);  
jframe.add(jScrollPane);   
jframe.setSize(500,300);  
jframe.setVisible(true); 

Как я могу использовать System.readline(), используя текстовое поле?

+0

Возможный дубликат [Как смоделировать или принести консоль со входом сканера в приложение jFrame] (http://stackoverflow.com/questions/20595418/how-to-simulate-or-bring-console-with-scanner-input -into-jframe-приложение) – rghome

+1

Есть много сообщений о stackoverflow о создании консоли с помощью Swing, которая звучит так, как вы хотите. Google для «Консоль jTextArea» и другие строки, и вы найдете много сообщений. – rghome

ответ

0

Истина вы не можете, но вы можете получить документ о JTextArea, а затем добавить DocumentListener к этому:

JTextArea text=new JTextArea(10,30); 
text.getDocument().addDocumentListener(new DocumentListener() { 
    @Override 
    public void insertUpdate(DocumentEvent arg0) { 
    // Handle text entry - just get the text when a newline character is found at the end of the text 
    } 
}); 

В основном то, что это делает это пожары после ввода любого текста в JTextArea, что вам и, таким образом, вы можете проверить, заканчивается ли текст, который был введен, символом новой строки, который будет эквивалентен пользователю, вставляющему команду, и нажатию кнопки Enter. Затем вы можете захватить текст между этой новой строкой и предыдущей (или текст, который у вас есть в текстовой области, если это пока только одна строка) и использовать его так, как вы хотите.

+0

Спасибо! Но в чем разница между addDocumentListener и addKeyListener? –

+0

@RickyCuarez DocumentListener проверяет наличие изменений в документе текстового поля, тогда как KeyListener проверяет ключевые события. Таким образом, DocumentListener будет проверять, что текст был изменен, независимо от того, вставляете ли вы что-то в текстовое поле или добавляете текст вручную, но KeyListener будет прослушивать ключи (т. Е. При вставке будет нажата клавиша для чего-то вроде Ctrl + V) и будет также запускают ключевые события, даже если текстовая область по какой-либо причине не редактируется. Поэтому DocumentListener предпочтительнее в этом сценарии. –

+0

Так как я могу собрать входы, пока не нажму Enter? –

Смежные вопросы