Java 将JPanel绘制为可打印,当它';它不在屏幕上
我使用JPanels模拟打印预览,只是打印内容面板,但是我遇到了一个问题,即如果我尝试打印多个基本上是同一文档的面板,则只有当前显示在屏幕上的面板才会打印 有没有办法强迫JPanel重新绘制,即使它当前不在屏幕上 我试过:Java 将JPanel绘制为可打印,当它';它不在屏幕上,java,swing,printing,paint,Java,Swing,Printing,Paint,我使用JPanels模拟打印预览,只是打印内容面板,但是我遇到了一个问题,即如果我尝试打印多个基本上是同一文档的面板,则只有当前显示在屏幕上的面板才会打印 有没有办法强迫JPanel重新绘制,即使它当前不在屏幕上 我试过: 通过以下方式禁用双缓冲: JComponent.setDoubleBuffered() repaitmanager.setDoubleBufferingEnabled() 画两遍 通过paint()绘制 通过repaint() 通过print()绘制 我无法让它在屏幕上
- 通过以下方式禁用双缓冲:
JComponent.setDoubleBuffered()
repaitmanager.setDoubleBufferingEnabled()
- 画两遍
- 通过
paint()绘制
- 通过
repaint()
- 通过
print()绘制
更新
原来问题出在扩展了
java.awt.Container
的组件上,Swing组件必须重写某些处理这种渲染的awt方法。例如,试试doLayout()
。@trashgood试过了,运气不好。你试过了吗?@VGR我只是在胡闹。我不知道我是否用错了,但它阻止了所有页面的绘制。