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

JTextArea.select()不选择任何内容

韩景胜
2023-03-14
问题内容

我在使用的选择功能时遇到麻烦JTextArea。我测试了变量System.out.print()是否正确填充。一切似乎都不错,但是select函数根本无法工作。

public class exercises extends JFrame {
    JTextField tf_search;
    String searchstr;
    JTextArea textarea;
    String aktStr;
    int Index;

    public exercises(String title) {
        super(title);
        setLayout(new FlowLayout());
        JComboBox<String> combo = new JComboBox<String>();
        combo.addItem("Here stands the whole Shit");
        String[] systemfonts = new String[200];
        systemfonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
        for (String s : systemfonts) {
            combo.addItem(s);
        }

        textarea = new JTextArea(10, 40);
        String examplestr = "Here I only test how often the word olo is in the text. "
                + "\nI'll add olo as often as I like. olo sounds like lol olo";
        textarea.setText(examplestr);
        JPanel p_search = new JPanel();

        tf_search = new JTextField();
        JButton b_search = new JButton("Search");
        //JButton b_weitersuchen = new JButton("weiter suchen"); // I also want to implement a     function to keep on searching for more appereances of the word that is searched
        p_search.add(b_search);
        //p_suchen.add(b_weitersuchen);
        p_search.add(tf_search);
        p_search.setLayout(new GridLayout(3, 1));
        //b_weitersuchen.addActionListener(new MeinActionLauscher());
        b_search.addActionListener(new MyActionListener());
        add(p_search);
        add(textarea);
        add(combo);
    }

    class MyActionListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            String label;
            label = e.getActionCommand();
            if (label.equals("Search")) {
                search();
            }
    //  if(label.equals("weiter suchen"))
            //  weiterSuchen();
        }
    }

    void search() {
        searchstr = tf_search.getText();
        if (searchstr == null) {
            return;
        }

        aktStr = textarea.getText();
        Index = aktStr.indexOf(searchstr);

        if (Index == -1) {
            JOptionPane.showMessageDialog(null, "String not found", "Dialog", JOptionPane.INFORMATION_MESSAGE);
        } else {
            textarea.select(Index, Index + searchstr.length());
        }
    }

    public static void main(String[] args) {
        exercises bla = new exercises("ComboBox Test");
        bla.pack();
        bla.setVisible(true);
        bla.setSize(700, 700);
    }
}

问题答案:

我自己解决了。选择一个单词之前,textarea需要获得焦点!

textarea.requestFocus();

这是带有新代码行的搜索功能:

void search() {
    searchstr = tf_search.getText();
    if (searchstr == null) {
        return;
    }

    aktStr = textarea.getText();
    Index = aktStr.indexOf(searchstr);

    if (Index == -1) {
        JOptionPane.showMessageDialog(null, "String not found", "Dialog", JOptionPane.INFORMATION_MESSAGE);
    } else {
        textarea.requestFocus();
        textarea.select(Index, Index + searchstr.length());
    }
}


 类似资料:
  • 我有一个查询,我用了很长时间才找到。我在一个有500k行的表的单个分区上运行它。 查询如下所示: 我将其设置为,因此查询返回0行。 此查询大约需要30秒(如果我使用,则需要一分钟)。 当我运行完全相同的查询但使用时,需要2秒。 是什么原因导致查询在使用选择列时花费很长时间,而在使用选择计数(列)时不花费时间? 这是解释的问题 *项目[col0#607] -*过滤器(isnotnull(col1#6

  • 你需要在你个人的需要和团队的需要间权衡,选择需要做工程中的哪个部分。你应该做你最擅长的东西,但是也要试着去找一种方式来激励自己,不是通过承担更多的工作而是通过练习新的技能。领导才能和交流能力比技术能力更重要。如果你非常强大,承担最困难或最有风险的任务,在工程中尽可能早地完成这部分,以此减少风险。

  • 我有“ngx引导”:“^3.1.4”和 这些完全兼容吗? 我试图打开组件在模态这个问题:ngx-bootstrap如何打开一个模态从另一个组件? 但是我得到了这个错误: 错误错误:未捕获(promise中):错误:StaticInjectorError(AppModule)[DialogBoxComponent- 我已经导入ngx在我的模块为:

  • 我的问题相当简单,但我仍然在任何地方都找不到答案:在Vim中,我如何在不实际选择文件的情况下关闭Netrw explorer?我应该击什么键来关闭浏览器并返回到当前打开的文件? 到目前为止,如果我想返回它,我必须从Netrw中选择当前打开的文件,如果我还没有保存它,这恰好是不可能的。 我可以补充说,我RTFM,并知道< code>:h netrw命令;) 非常感谢。

  • 问题内容: JDK中是否有一个标准的功能接口,该接口什么都不做,什么也不返回?我找不到一个。类似于以下内容: 问题答案: 那么Runnable呢:

  • 问题内容: 我刚刚在工作中获得了一个现有的Web应用程序,该应用程序应该使用Log4J记录其活动。我已经按照告诉我的方式配置了工作空间,其他所有内容(数据库连接,身份验证等)都可以正常工作,只是没有任何内容写入日志文件。其他类似的应用程序没有问题记录。 我已经在应用程序启动时查看了WebSphere控制台,那里没有错误可能表明Log4J没有记录的原因。 我向另一个开发人员提到了这一点(该开发人员曾