Java Swing JTextArea 镜像

标签 java swing user-interface jtextarea keylistener

我制作了一个有两个 JTextArea 的用户界面。我希望一个文本区域能够接收用户的直接输入,然后我基本上希望另一个文本区域能够准确地反射(reflect)它。因此,这意味着除了添加完全相同的字符外,它还可以正确匹配退格键和返回键等。我尝试通过使用 Robot(int keycode) 函数模拟退格键和返回键来实现这一点,给它右键代码 10 为 Enter,8 为 Backspace。如果它是常规字符,那么我只需将其附加到第二个 JTextArea 中。这对于字符和回车键按下效果很好,但按退格键只会将未知字符矩形绘制到镜像文本区域。

enter image description here

理想情况下,我希望能够将输入 JTextArea 中发生的事件直接传递到输出 JTextArea,而不是自己手动计算出适当的行为。

这是程序的一部分,用于创建输入 JTextArea 并分配一个按键监听器:

inputBox = new JTextArea();
    inputBoxScroller = new JScrollPane();
    inputBoxScroller.setViewportView(inputBox);
    inputBox.addKeyListener(this);

这是程序的一部分,它接收按键监听事件并根据按下的按键的键码确定要执行的操作,我希望将其更改为以某种方式将按键监听事件“转发”到输出 JTextArea,因为这样会更理想。

public void keyTyped(KeyEvent keyevent) {
    String keyPressed = String.valueOf(keyevent.getKeyChar());
    int keyCode = keyevent.getKeyCode();

    if(keyCode == 10) {
        try {
            System.out.println(keyevent.toString());
            autoKeypresser = new Robot();
            outputBox.requestFocus();
            autoKeypresser.keyPress(10);
            inputBox.requestFocus();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    } 

    if(keyCode == 8) {
        try {
            autoKeypresser = new Robot();
            outputBox.requestFocus();
            autoKeypresser.keyPress(8);
            inputBox.requestFocus();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    } else {
        outputBox.append(keyPressed);
    }
}

最佳答案

I would then essentially like the other one to mirror it exactly

您所需要做的就是共享模型:

JTextArea textArea1 = new JTextArea(...);
JTextArea textArea2 = new JTextArea();
textArea2.setDocument( textArea1.getDocument() );

现在,您在任一文本区域中键入的任何内容都将反射(reflect)在两个文本区域中。

关于Java Swing JTextArea 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19366562/

相关文章:

apache - 使用 Apache 2.4 mod_proxy 和基本身份验证在 Docker 容器中运行 Portainer

html - CSS 按钮(文本或图像)

java - 如何找到方法参数的具体类

java - 在Java中解析字符串中的不同日期格式

java - 如何在 JScrollPane 中隐藏但不禁用滚动条?

java - 打包 JMeter Gui

java - 我的时钟不显示秒增加

用于图像编辑的 Java 书,例如亮度/对比度等(新手友好)

java - Spring 无法 Autowiring ,有多个 `` 类型的 bean

java - 根据几个参数对类(class)内容进行排序