小编典典

重点组件参考

java

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

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


阅读 212

收藏
2020-11-26

共1个答案

小编典典

根据您的确切上下文,您可能考虑使用自定义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));
2020-11-26