当前位置: 首页 > 知识库问答 >
问题:

Java Swing JTextArea镜像

蒋俊
2023-03-14

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

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

这是html" target="_blank">程序中创建输入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);
    }
}

共有1个答案

耿招
2023-03-14

然后我就会想要另一个完全的镜像它

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

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

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

 类似资料:
  • 镜像分为两部分: 时间/设备筛选 和 镜像分析 (详情) 1.时间/设备筛选 便捷按钮有今日、昨日、前日、上周 X、近七天,根据想要的访问设备来得出想要的结果报表 2.镜像分析(详情) 1)本功能适用于可以通过被访问URL开头字串(不仅限于域名)来区分镜像的情况 2)添加镜像成功,可以继续添加

  • 镜像回收站用于存放用户删除的镜像文件。 镜像回收站用于存放用户删除的系统镜像和主机镜像。在回收站中镜像文件不支持自动清除操作,需要用户手动清除。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/回收站/镜像” 菜单项,进入镜像回收站列表。 清除 当确定回收站中的镜像文件无用后,可使用清除功能立即彻底删除文件。 清除单个镜像 单击 “清除” 按钮,弹出操作确认对话框。 单击 “

  • 镜像是用于新建虚拟机、裸金属使用的模板文件。 系统镜像 系统镜像用于创建虚拟机和裸金属设备。 主机镜像 主机镜像用于创建虚拟机,主机镜像是同时将模板虚拟机上的所有硬盘保存为镜像,基于主机镜像创建的虚拟机拥有除模板虚拟机用户数据之外的全部数据。

  • 我们都知道,操作系统分为内核和用户空间。对于 Linux 而言,内核启动后,会挂载 root 文件系统为其提供用户空间支持。而 Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:18.04 就包含了完整的一套 Ubuntu 18.04 最小系统的 root 文件系统。 Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配

  • 主要内容:使用镜像代替中央仓库,镜像与 Maven 私服配合使用如果一个仓库 A 可以提供另一个仓库 B 的所有内容,那么就可以认为仓库 A 是仓库 B 的一个镜像。即仓库 B 中的任何一个构件都能从它的镜像中获取。 使用镜像代替中央仓库 国内开发人员由于网络原因,直接从中央仓库下载构件时,速度较慢或不稳定,我们通常会使用中央仓库的国内镜像站来解决该问题。 配置 Maven 镜像的方法也非常的简单,我们只需要在 Maven 安装目录中 setting.xml

  • 镜像 镜像是 Docker 的三大组件之一。 Docker 运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker 会从镜像仓库下载(默认是 Docker Hub 公共注册服务器中的仓库),我们也可以搭建一个本地的镜像仓库,但这不是本文的重点。本文将以镜像为中心介绍: 如何构建基础镜像 Dockerfile的基本结构以及详解 利用Dockerfile构建镜像

  • 拉取官方 Docker 镜像 docker pull apache/shardingsphere-proxy 手动构建 Docker 镜像(可选) git clone https://github.com/apache/shardingsphere mvn clean install cd shardingsphere-distribution/shardingsphere-proxy-dist

  • 1、介绍 在 Docker 的术语里,一个只读层被称为镜像,一个镜像是永久不会变的。 由于 Docker 使用一个统一文件系统,Docker 进程认为整个文件系统是以读写方式挂载的。 但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不 可写,所以镜像是无状态的。 1.1 父镜像 每一个镜像都可能依赖于由一个或多个下层的组成的另一个镜像。我们有时说,下层那个 镜像是上层