Не удается записать в текстовое поле в приложении Swing, запущенном из консоли через SSH - PullRequest
2 голосов
/ 06 июля 2011

Я сделал свинговое приложение с JFrame. Но когда я запускаю это приложение из консоли с помощью java -jar, когда я вошел в систему через ssh, я не могу писать ни в одно из текстовых полей. Все, что я пишу, появляется в консоли, а не в текстовом поле. Посмотрите на изображение, чтобы показать, что происходит. Как я могу решить это? Заранее большое спасибо.

Проблема http://img833.imageshack.us/img833/8688/screenshotoftheproblem.jpg

Javier

Ответы [ 2 ]

1 голос
/ 15 июля 2014

У меня тоже была эта проблема, но она была решена с помощью ssh -Y (вместо -X).На форумах обнаружил, что для работы некоторых java-приложений требуется надежный (-Y) ssh.Надеюсь, что помочь другим.

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

Я предполагаю, что вы имеете дело с Unix, как с операционными системами, даже если вы не упоминаете об этом.Какую версию JVM вы используете?Одна и та же версия на вашем SSH-сервере и клиенте?У меня была проблема с JVM в OS X, я не мог запустить GUI через ssh из Linux-клиента, но между теми же версиями Linux проблем не было.Возможно, вы захотите добавить выходные данные отладки в командную строку ssh через ключ -v.Я бы порекомендовал попробовать очень простое приложение, тривиальный пример: просто текстовое поле на JFrame;чтобы исключить любые возможные проблемы со стеком компоновки или прослушивателем.

Не могли бы вы попробовать этот код и посмотреть, можете ли вы изменить JTextField

public class SimplestGUI extends JFrame
{
    public static void main(String [] args)
    {
        SimplestGUI window = new SimplestGUI();
        window.start();
    }

    public SimplestGUI()
    {
        initGUI();  
    }

    private void initGUI()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(150,100);
        JTextField textField = new JTextField();
        textField.setText("123 probando");
        getContentPane().add(textField);
    }

    public void start()
    {
        setVisible(true);
    }
}

Для компиляции и запуска используйте эти команды (при условии, что выиметь JDK в вашем PATH):

javac SimplestGUI.java ; java -cp . SimplestGUI 

Если это сработает, то вам следует начать добавлять компоненты, слушатель, адаптеры и т. д. один за другим, и посмотреть, какой из них приводит к тому, что текстовые поля не получаютвход.Если и это не сработает, то я предполагаю, что у вас могут быть проблемы с различными версиями или реализациями X Window.¿Можете ли вы поделиться своим кодом, чтобы попробовать его в другой среде?

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