微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

绘制JComponent而不将其添加到容器中

如何解决绘制JComponent而不将其添加到容器中

| 我实现了一个自定义ѭ0,它的绘画方法已经扩展为可以在全屏模式下进行很多手动渲染。现在,我想在此面板上集成另一个ѭ1(在我的情况下是一个ѭ0,其中包含一个ѭ3,其中ѭ4是其视口),它应该出现在我的第一个面板的顶部,但是由于我的自定义渲染管道很复杂,因此将ѭ1添加到我的面板并通过AWT系统绘制传统方式不是一种选择(我尝试过,最好不过是古怪,最坏情况下则无法运行),所以我的问题是:是否可以手动订购ѭ1通过调用程序的常规绘制方法而不是将其绑定到ѭ7at在某一时刻进行绘制,如果是,我该怎么做? 预先感谢您的回答。     

解决方法

        请参见该线程上的
LabelRenderTest.java
源代码。该标签最终被绘制到屏幕上,但在显示之前被涂成
BufferedImage
。 来源的重要所在是..
textLabel.setSize(textLabel.getPreferredSize());
    ,        您可以看一下CellRendererPane,看看例如BasicTableUI如何用它绘制组件图像。     ,        是的,只需在对象上调用常规的绘制方法,然后传递要在其上绘制的图形即可。但是,这只是将其绘制,听起来好像您希望它可以滚动,这意味着您需要将其添加到自定义JPanel中。在这种情况下,只需添加面板,然后您便会在布局管理器中将组件放置在所需的位置。     ,        您应该设置组件的大小。然后要定位它,请使用您的Graphics'translation(x,y)将组件定位在所需的Point中。     ,        如果层次结构中有更高级别的容器,则可以使用
validate(); repaint(); 
一对去做。 如果不是,您可以在最后更改其大小或范围(例如+1,-1),以使其重新绘制自身。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。