gpt4 book ai didi

java - 如果 JTextFeild 在 JFrame 中,则 JTextPane select() 不起作用

转载 作者:行者123 更新时间:2023-11-29 03:20:50 31 4
gpt4 key购买 nike

我试图在 JTextPane 中以编程方式选择一些文本,但它不起作用。我发现了问题,但我不知道如何解决。如果 JFrame 中没有 JTextFeild,它工作正常,但如果我添加它,焦点将转到 JTextFeild 并且选择取消选择。

这是一个SSCCE

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;


@SuppressWarnings("serial")
public class SSCCE extends JFrame {

JTextPane pane;
JTextField feild;

public SSCCE() {
setSize(300, 200);
feild = new JTextField("This is a text feild");
// Run the program then uncomment the next line and run the program again.
// add(feild, BorderLayout.NORTH);
pane = new JTextPane();
pane.setText("This is some text. I am making an SSCCE. This is some additional text.");
pane.select(2, 30);
add(pane);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}

public static void main(String[] args) {
new SSCCE();
}
}

最佳答案

选择有效。但是,只有当前具有焦点的文本组件才会显示选择。

您需要做的就是按 Tab 键,焦点将转到文本 Pane ,您将看到选择。

或者您可以在 setVisible(true) 语句之后添加以下内容。

    pane.requestFocusInWindow();

确保在 EDT 上创建 GUI:

EventQueue.invokeLater(new Runnable()
{
public void run()
{
new SSCCE3();
}
));

关于java - 如果 JTextFeild 在 JFrame 中,则 JTextPane select() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23712809/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com