【问题标题】:Java Swing JTextArea mirroringJava Swing JTextArea 镜像
【发布时间】:2013-10-22 09:24:34
【问题描述】:

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

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

这是程序的一部分,它创建输入 JTextArea 并分配一个 keylistener:

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

这是程序的一部分,它接收 keylisten 事件并根据按下的键的键码计算出要做什么,我希望将其更改为以某种方式将 keylisten 事件“转发”到输出 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);
    }
}

【问题讨论】:

    标签: java swing user-interface jtextarea keylistener


    【解决方案1】:

    然后我基本上希望另一个完全反映它

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

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

    现在,您在任一文本区域中输入的任何内容都将反映在两个文本区域中。

    【讨论】:

    • 这行得通!谢谢!它似乎也比我以前做的更快,太好了,再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2017-07-30
    • 2020-04-02
    • 2016-09-18
    相关资源
    最近更新 更多