我的项目正在进行中。我必须接受触摸板坐标并基于我正在尝试在触摸板上开发键盘。我使用java作为我的语言。
通过linux开发它。我想知道如何在gedit中输入直接处理java的文本。有没有办法可以输入gedit中识别的文本?
(文本编辑 - 建议是否有其他文本编辑器可以这样做?
答案 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");