2012-03-10 2 views
0

У меня есть проект. В котором я должен принимать координаты тачпада и на основании этого я пытаюсь развернуть клавиатуру поверх тачпада. Я использую java в качестве своего языка.Как мне ввести текст в gedit linux, введенный в java?

И разработка его через Linux. хотел узнать, как я могу ввести текст в gedit, непосредственно работая над java. Есть ли способ, по которому я могу ввести текст, распознанный в gedit?

(текст editor- предложить, если любой другой текстовый редактор можно сделать так?

ответ

2

Следующий фрагмент кода представляет собой пример того, как создать Keypress событие в Java.

import java.awt.Robot; 
import java.awt.event.KeyEvent; 

public class Main { 
    public static void main(String[] argv) throws Exception { 

    Robot robot = new Robot(); 

    robot.keyPress(KeyEvent.VK_A); 
    robot.keyRelease(KeyEvent.VK_A); 

    } 
} 

Следующая официальная Учебник Java How to Write a Mouse Listener дает пример того, как писать прослушиватель для событий мыши.

Что вы хотите сделать, это генерировать события keyPress на основе местоположения MouseListener при событии Click.

В вашем MousePressed обработчике вы получите координаты х и у, используя MouseEvent в getXOnScreen() и getYOnScreen() методы, то в зависимости от их значения генерировать соответствующие KeyPress с роботом.

Если вы действительно хотели, чтобы местоположение координаты сенсорной панели не было, а не местоположение курсора на экране с сенсорной панели, я не думаю, что вы могли бы сделать это с помощью Java.

Runtime runtime = Runtime.getRuntime(); 
Process process = runtime.exec("/usr/bin/gedit"); 

Почему вы хотите, чтобы ввести в текстовый редактор и сохраните файл, а не только inputing символы, которые будут сгенерированные нажатием клавиши прямо в файл с помощью standard Java IO, я не знаю.

Если вы запускаете внешние программы для выполнения этих задач, то вы можете получить координаты тачпада от внешней программы xev.

+0

На самом деле я tryng найти исходные координаты через драйверы Линукс, а затем tryng, чтобы ввести его в файл и Råd его через Java. ... на самом деле я хотел ввести текст в geedit (или текстовый редактор), работающий в системе, не закрывая редактор – ashishkawade

+0

ya, я думаю, ваш метод проще ... создание события нажатия клавиши сделало бы ... – ashishkawade

0

Возможно, вы захотите взглянуть на класс Process и метод Runtime.exec() (и его варианты) для запуска подпроцесса (gedit в вашем случае) и работы с ним при выполнении вашей Java-программы.

Edit: Предполагая, что вы работаете на Windows, и с помощью блокнота, и все ваши координаты хранятся в файле с именем test.txt. Вот фрагмент кода, который поможет вам начать работу к тому, что вы хотите:

Runtime runtime = Runtime.getRuntime(); 
Process process = runtime.exec("C:\\Windows\\notepad.exe C:\\test.txt"); 
+0

Вы думаете сохранение документа, а затем повторный запуск документа с изменением? – ashishkawade

+0

Это должно быть сделано, если вы правильно обрабатываете свой подпроцесс. –

+0

может быть использование потоков поможет ... спасибо много ... это немного облегчает ... – ashishkawade

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