Java 有没有办法确定图形是否被翻译过?
让我们假设我有一个扩展JPanel的对象主面板,其中有另一个扩展JPanel的对象internaPanel 在mainPanel的paintComponent()方法中,我在图形对象上使用translate()方法,这也应该更改internaPanel图形上下文的来源。只要我在需要时在主面板上调用repaint()方法,它就可以。但问题是,有时我的internaPanel被迫自己重新绘制—例如,当我更改其不透明参数时。当这种情况发生时,internaPanel显然出现在JFrame的错误部分 我怎样才能防止这种情况发生?是否有办法检查internaPanel paintComponent()方法的图形参数是否来自mainPanel(以及是否已翻译)Java 有没有办法确定图形是否被翻译过?,java,swing,Java,Swing,让我们假设我有一个扩展JPanel的对象主面板,其中有另一个扩展JPanel的对象internaPanel 在mainPanel的paintComponent()方法中,我在图形对象上使用translate()方法,这也应该更改internaPanel图形上下文的来源。只要我在需要时在主面板上调用repaint()方法,它就可以。但问题是,有时我的internaPanel被迫自己重新绘制—例如,当我更改其不透明参数时。当这种情况发生时,internaPanel显然出现在JFrame的错误部分 我
谢谢大家! 您的问题是,您的代码在paintComponent方法中更改了GUI对象的状态,而这是您永远不应该做的,因为您发现:您无法完全控制何时甚至是否会发生绘制 解决方案是在paintComponent外部更改对象状态,然后在paintComponent内使用该状态(字段)
有关更多详细信息,请显示更多(部分!)代码。不确定当两个组件之间存在父/子关系时,为什么要使用图形转换(…)方法。在进行自定义绘制时使用图形转换 在处理Swing组件时,您可能应该使用布局管理器,让布局管理器调用每个组件上的
setLocation(…)
方法,以便相对于父组件绘制子组件
您不应尝试自己管理该位置。有关更多信息,请阅读Swing教程中的部分。请显示一些代码!。。。。。。。。。。。。。。。。代码??