我有我的項目正在進行中。我必須接受觸摸板座標,並基於此我試圖開發一個鍵盤在觸摸板上。我使用java作爲我的語言。如何在gedit linux中輸入在java中輸入的文本?
並通過linux開發它。想知道如何在gedit中輸入文本直接在java上工作。有沒有辦法通過我可以輸入在gedit中識別的文本?
(文本編輯器 - 建議如果任何其他文本編輯器,可以這樣做?
我有我的項目正在進行中。我必須接受觸摸板座標,並基於此我試圖開發一個鍵盤在觸摸板上。我使用java作爲我的語言。如何在gedit linux中輸入在java中輸入的文本?
並通過linux開發它。想知道如何在gedit中輸入文本直接在java上工作。有沒有辦法通過我可以輸入在gedit中識別的文本?
(文本編輯器 - 建議如果任何其他文本編輯器,可以這樣做?
下面的代碼片段是如何生成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提供瞭如何編寫一個偵聽鼠標事件的例子。
你想要做什麼是基於對的MouseListener的上一個點擊事件的位置按鍵事件。
在您的MousePressed
處理程序中,您將使用MouseEvent的getXOnScreen()
和getYOnScreen()
方法獲取x和y座標,然後根據它們的值使用機器人生成相關的KeyPress
。
如果你真的想要觸摸板座標的原始座標位置,而不是觸摸板的光標在屏幕上的位置,我不認爲你可以用Java來做到這一點。
由於Kazekage Gaara發佈,運行時和進程將爲您啓動gedit,然後您可以使用生成的鼠標事件和按鍵事件來鍵入它。
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("/usr/bin/gedit");
你爲什麼要輸入到一個文本編輯器,並保存文件,而不是僅僅輸入查詢,將通過按鍵來產生直衝使用standard Java IO該文件中的字符,我不知道。
如果您正在啓動外部程序來執行這些操作,那麼您可以從外部程序xev
獲取觸摸板座標。
你可能想看看Process類和Runtime.exec()方法(以及它的變體)來啓動子進程(在你的情況下是gedit)並在執行你的Java程序時使用它。
編輯: 假設您正在使用的Windows和使用記事本和所有的座標都存儲在一個名爲test.txt的。這裏,將讓你對你想要開始一段代碼:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Windows\\notepad.exe C:\\test.txt");
你認爲保存文件,然後重新運行該文件與修改將做什麼? – ashishkawade 2012-03-10 04:55:44
它應該這樣做,只要你正確地處理你的子過程。 – 2012-03-10 05:02:58
可能會使用線程會有所幫助...非常感謝...簡化了一下... – ashishkawade 2012-03-10 05:10:33
其實我tryng通過Linux驅動程序,找到原始座標,然後tryng在一個文件中輸入並通過Java RAD它。 ...其實我想在沒有關閉編輯器的情況下在系統上運行geedit(或文本編輯器)輸入文本 – ashishkawade 2012-03-10 04:47:22
你猜我認爲你的方法是一個更簡單的方法...生成按鍵事件會做... – ashishkawade 2012-03-10 05:32:59