我有一个带有背景图像的 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);
}
添加回答
举报
0/150
提交
取消