2012-03-10 71 views
0

我有我的项目正在进行中。我必须接受触摸板坐标,并基于此我试图开发一个键盘在触摸板上。我使用java作为我的语言。如何在gedit linux中输入在java中输入的文本?

并通过linux开发它。想知道如何在gedit中输入文本直接在java上工作。有没有办法通过我可以输入在gedit中识别的文本?

(文本编辑器 - 建议如果任何其他文本编辑器,可以这样做?

回答

2

下面的代码片段是如何生成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获取触摸板坐标。

+0

其实我tryng通过Linux驱动程序,找到原始坐标,然后tryng在一个文件中输入并通过Java RAD它。 ...其实我想在没有关闭编辑器的情况下在系统上运行geedit(或文本编辑器)输入文本 – ashishkawade 2012-03-10 04:47:22

+0

你猜我认为你的方法是一个更简单的方法...生成按键事件会做... – ashishkawade 2012-03-10 05:32:59

0

你可能想看看Process类和Runtime.exec()方法(以及它的变体)来启动子进程(在你的情况下是gedit)并在执行你的Java程序时使用它。

编辑: 假设您正在使用的Windows和使用记事本和所有的坐标都存储在一个名为test.txt的。这里,将让你对你想要开始一段代码:

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

你认为保存文件,然后重新运行该文件与修改将做什么? – ashishkawade 2012-03-10 04:55:44

+0

它应该这样做,只要你正确地处理你的子过程。 – 2012-03-10 05:02:58

+0

可能会使用线程会有所帮助...非常感谢...简化了一下... – ashishkawade 2012-03-10 05:10:33

相关问题