我有一個帶有背景圖像的 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
提交
取消