当前位置: 首页 > 面试题库 >

重点组件参考

家经纶
2023-03-14
问题内容

我正在研究一个基于Java Swing的简单应用程序。我将如何获取和设置表单当前关注的文本字段/文本区域的文本?

我知道如何确定哪个组件具有焦点,但是我不知道如何获取组件的选定文本。我使用getFocusOwner(),但它返回一个Component,因此未实现getSelectedText()方法。我是否需要进行类型转换?


问题答案:

根据您的确切上下文,您可能考虑使用自定义TextAction:其方法getTextComponent(ActionEvent)返回最新的焦点文本组件。一个代码片段:

    Action logSelected = new TextAction("log selected") {

        @Override
        public void actionPerformed(ActionEvent e) {
            JTextComponent text = getTextComponent(e);
            System.out.println("selected: " + text.getSelectedText());
        }

    };

    JComponent content = new JPanel();
    content.add(new JTextField("sometext", 20));
    content.add(new JTextField("other content", 20));
    content.add(new JCheckBox("just some focusable comp"));
    content.add(new JButton(logSelected));


 类似资料:
  • 点赞组件 <a href="{:U('article/do_like',array('id'=>$object_id))}" class="js-count-btn"><i class="fa fa-thumbs-up"></i><span class="count">{$post_like}</span></a> 分解组件: <!-- 点赞链接 须传入文章id --> href="{:U('a

  • 点击 属性检查器 下面的 添加组件 按钮,然后从 碰撞组件 中选择需要的 Collider 组件,即可添加 Collider 组件到节点上。 Collider 组件属性 属性 功能说明 Tag 标签。当一个节点上有多个碰撞组件时,在发生碰撞后,可以使用此标签来判断是节点上的哪个碰撞组件被碰撞了。 Editing 是否编辑此碰撞组件,只在编辑器中有效 详细说明 一个节点上可以挂多个碰撞组件,这些碰撞

  • 属性 属性 说明 Clip 用来播放的音频资源对象 Volume 音量大小,范围在 0~1 之间 Mute 是否静音 Loop 是否循环播放 Play on load 是否在组件激活后自动播放音频 preload 是否在未播放的时候预先加载 更多音频接口的脚本接口请参考 AudioSource API。

  • Animation(动画) 组件可以以动画方式驱动所在节点和子节点上的节点和组件属性,包括用户自定义脚本中的属性。 点击 属性检查器 下面的 添加组件 按钮,然后从 其他组件 中选择 Animation,即可添加 Animation(动画) 组件到节点上。 动画的脚本接口请参考 Animation API。 Animation 属性 属性 功能说明 Default Clip 默认的动画剪辑,如果这

  • BlockInputEvents 组件将拦截所属节点 bounding box 内的所有输入事件(鼠标和触摸),防止输入穿透到下层节点,一般用于上层 UI 的背景。 当我们制作一个弹出式的 UI 对话框时,对话框的背景默认不会截获事件。也就是说虽然它的背景挡住了游戏场景,但是在背景上点击或触摸时,下面被遮住的游戏元素仍然会响应点击事件。这时我们只要在背景所在的节点上添加这个组件,就能避免这种情况。

  • PageviewIndicator 用于显示 PageView 当前的页面数量和标记当前所在的页面。 点击 属性检查器 下面的 添加组件 按钮,然后从 UI 组件 中选择 PageviewIndicator,即可添加 PageviewIndicator 组件到节点上。 PageviewIndicator 的脚本接口请参考 PageviewIndicator API。 PageviewIndicat