发布于2022-03-29 03:14 阅读(1172) 评论(0) 点赞(0) 收藏(5)
我有以下问题:
我JTextPane
在左边有一个充满内容的内容,它JTextPane
被放入一个JScrollPane
. 这ScrollPane
被添加到BorderLayout.CENTER
a中JPanel
,并且这个结果JPanel
被添加到BorderLayout.CENTER
底层JFrame contentPane()
中。
现在我想把它传播到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()
被覆盖的原因。
作者:黑洞官方问答小能手
链接:http://www.javaheidong.com/blog/article/408015/3b099a4d4008dee60e6d/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!