gpt4 book ai didi

java - 无法从 JTextPane 获取文本

转载 作者:行者123 更新时间:2023-12-02 07:26:28 26 4
gpt4 key购买 nike

所以我有一个 JTextPane,并且有一个方法返回包含 JTextPane 中文本的 String。几周来我一直在努力解决这个问题。 getText() 方法返回一个空行。我尝试获取文档长度,但返回 0。

这是代码:

import java.awt.*;
import javax.swing.*;

public class CodeTabs extends JTabbedPane {
private JTextPane codearea;
private JScrollPane scroll;

public CodeTabs() {
setTabPlacement(JTabbedPane.BOTTOM);

codearea = new JTextPane();

scroll = new JScrollPane(codearea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setPreferredSize(new Dimension(Toolkit.getDefaultToolkit().getScreenSize()));

addTab("Code", scroll);
}

public String getCode() {
String s = codearea.getText();

System.out.println(s);

return s;
}
}

最佳答案

我获取了您的代码并添加了一个 main 方法和一个按钮来触发 getCode() 方法。一切都按预期进行。当我在文本区域中输入内容时,按下按钮就会打印该内容。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CodeTabs extends JTabbedPane {
private JTextPane codearea;
private JScrollPane scroll;

public CodeTabs() {
setTabPlacement(JTabbedPane.BOTTOM);

codearea = new JTextPane();

scroll = new JScrollPane(codearea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setPreferredSize(new Dimension( 300,300 ));

JPanel panel = new JPanel( new BorderLayout() );
panel.add( scroll, BorderLayout.CENTER );
JButton comp = new JButton( "Print text" );
comp.addActionListener( new ActionListener() {
@Override
public void actionPerformed( ActionEvent e ) {
getCode();
}
} );
panel.add( comp, BorderLayout.SOUTH );

addTab( "Code", panel );
}

public String getCode() {
String s = codearea.getText();

System.out.println(s);

return s;
}

public static void main( String[] args ) {
EventQueue.invokeLater( new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame( "TestFrame" );
frame.getContentPane().add( new CodeTabs() );
frame.setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE );
frame.pack();
frame.setVisible( true );
}
} );
}
}

注意:无需扩展JTabbedPane。使用它而不是扩展它(我将它留在这个答案中发布的代码中,以尽可能匹配您的代码)

关于java - 无法从 JTextPane 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13519346/

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