如何输入在java中输入的gedit linux中的文本?

时间:2012-03-10 03:43:46

标签: java linux

我的项目正在进行中。我必须接受触摸板坐标并基于我正在尝试在触摸板上开发键盘。我使用java作为我的语言。

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

(文本编辑 - 建议是否有其他文本编辑器可以这样做?

2 个答案:

答案 0 :(得分:2)

以下代码段是如何使用Java生成Keypress事件的示例。

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提供了如何为鼠标事件编写侦听器的示例。

您要做的是根据Click事件上MouseListener的位置生成keyPress事件。

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获取触摸板坐标。

答案 1 :(得分:0)

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

修改 假设您正在使用Windows并使用记事本,并且所有坐标都存储在名为test.txt的文件中。这是一个代码片段,可以帮助您开始实现目标:

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