防止JTextArea的背景图像在向下滚动时伸展

问题描述 投票:1回答:1

我有一个JTextArea,带有背景图像,基本上显示了一些输出。问题是,当附加输出时,JTextArea开始向下“自动滚动”,背景图像也向下扩展...有什么方法可以防止这种情况?

要绘制图像,我的JTextArea会覆盖如下的paintComponent:

public void paintComponent(final Graphics g)
{
    try {
        g.drawImage(imageIcon.getImage(),0,0,getWidth(),getHeight(),this);
        super.paintComponent(g);
    } catch(Exception e) {
        e.printStackTrace();
    }
}

然后是滚动窗格:

DefaultCaret caret3 = (DefaultCaret)jTextArea2.getCaret();
caret3.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
jScrollPane5.setViewportView(jTextArea2);
new SmartScroller(jScrollPane5);

(从此处获取的SmartScroller类,以实现智能滚动https://tips4java.wordpress.com/2013/03/03/smart-scrolling/

有什么建议吗?让我知道是否需要发布其他代码。

java swing jscrollpane jtextarea
1个回答
1
投票
@Override protected void paintComponent(Graphics g) { Rectangle rect = getVisibleRect(); g.drawImage(image.getImage(), rect.x, rect.y, rect.width, rect.height, this); super.paintComponent(g); }
© www.soinside.com 2019 - 2024. All rights reserved.