перенаправить inputStream в JTextField - PullRequest
0 голосов
/ 12 июля 2011

Я хочу перенаправить ввод стандартной системы в JTextField, Так что пользователь должен ввести свой ввод в JTextField (вместо консоли.)

Я нашел System.setIn(InputStream istream) для перенаправления System.in.

Вот мой рабочий код, где я запутался при чтении с JTextField - inputJTextField.

 System.setIn(new InputStream() {
     @Override
         public int read() throws IOException {
         //how to read content?
         return Integer.parseInt(inputJTextField.getText());
      }
  });

Мой вопрос как читать содержимое из компонента GUI (например, JTextField и приведение его к String и другим типам после перенаправления входного потока ?

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Если вы хотите преобразовать произвольную строку в InputStream, тогда используйте ByteArrayInputStream .

ByteArrayInputStream stringToInputStream ( final String s )
{
  // Assume your input is in UTF-8
  ByteArrayInputStream result =
    new ByteArrayInputStream( s.getBytes( "UTF-8" ) );

  return result;
}

Однако я не уверен, что весь ваш подход к настройке входного потока запущенного процесса сработает.

1 голос
/ 12 июля 2011

для многоканального ввода в Gui было бы лучше искать JEditorPane или JTextPane , множество примеров на этом форуме для JEditorPanes ot JTextPanes или здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...