为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿晨1998 2023-11-01 21:03:54
我有一个带有背景图像的 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/)有什么建议 ?如果需要发布任何进一步的代码,请告诉我。
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您应该根据可见矩形显示图像。像这样的东西:


    @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);

    }


查看完整回答
反对 回复 2023-11-01
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信