如何在gedit linux中输入在java中输入的文本?
我有我的项目正在进行中。我必须接受触摸板坐标,并基于此我试图开发一个键盘在触摸板上。我使用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