gpt4 book ai didi

java - JTextPane 适合底层 JPanel 和 JFrame

转载 作者:行者123 更新时间:2023-11-30 11:31:34 25 4
gpt4 key购买 nike

我有以下问题: enter image description here

我在左侧有一个 JTextPane,里面装满了内容,这个 JTextPane 放在了 JScrollPane 中。此 ScrollPane 添加到 JPanelBorderLayout.CENTER 并将生成的 JPanel 添加到 底层 JFrame contentPane() 的 BorderLayout.CENTER

现在我想将这个 JTextPane 散布到整个 JFrame/JPanel 中。我怎样才能做到这一点?

代码如下:

public class FinishPanelBuilder extends JPanel
{
/**
* Serial version UID.
*/
private static final long serialVersionUID = 4373044358025740572L;
private Model model;

/**
* Constructor to call if you want to build up a new finish panel.
*
* @param model
*/
public FinishPanelBuilder()
{
buildFinishPanel();
}

/**
* Builds up the panel.
*/
public void buildFinishPanel()
{
setLayout(new BorderLayout());

JTextWrapPane textPaneResult = new JTextWrapPane();
//This is my own class of JTextPane to wrap text
StyledDocument document = textPaneResult.getStyledDocument();

textPaneResult.setEditable(false);
textPaneResult.setBackground(Color.white);
textPaneResult.setFont(panelLabel.getFont());
textPaneResult.setAutoscrolls(true);
textPaneResult.setLineWrap(false);

JScrollPane scrollPaneTestResult = new JScrollPane(textPaneResult);
scrollPaneTestResult.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));

panelLabel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));
setBorder(BorderFactory.createEtchedBorder());
add(panelLabel, BorderLayout.PAGE_START);
add(scrollPaneTestResult, BorderLayout.CENTER);
}
}

这段完整的代码被调用

JFrame frame = new JFrame(); 
frame.add(new FinishPanelBuilder();

最佳答案

好的,我又做了一次,没问题。我不知道为什么。我认为这是一个名为 getScrollableTracksViewportWidth() 的错误方法被覆盖的原因。

关于java - JTextPane 适合底层 JPanel 和 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084330/

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