Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法确定图形是否被翻译过?_Java_Swing - Fatal编程技术网

Java 有没有办法确定图形是否被翻译过?

Java 有没有办法确定图形是否被翻译过?,java,swing,Java,Swing,让我们假设我有一个扩展JPanel的对象主面板,其中有另一个扩展JPanel的对象internaPanel 在mainPanel的paintComponent()方法中,我在图形对象上使用translate()方法,这也应该更改internaPanel图形上下文的来源。只要我在需要时在主面板上调用repaint()方法,它就可以。但问题是,有时我的internaPanel被迫自己重新绘制—例如,当我更改其不透明参数时。当这种情况发生时,internaPanel显然出现在JFrame的错误部分 我

让我们假设我有一个扩展JPanel的对象主面板,其中有另一个扩展JPanel的对象internaPanel

在mainPanel的paintComponent()方法中,我在图形对象上使用translate()方法,这也应该更改internaPanel图形上下文的来源。只要我在需要时在主面板上调用repaint()方法,它就可以。但问题是,有时我的internaPanel被迫自己重新绘制—例如,当我更改其不透明参数时。当这种情况发生时,internaPanel显然出现在JFrame的错误部分

我怎样才能防止这种情况发生?是否有办法检查internaPanel paintComponent()方法的图形参数是否来自mainPanel(以及是否已翻译)


谢谢大家!

您的问题是,您的代码在paintComponent方法中更改了GUI对象的状态,而这是您永远不应该做的,因为您发现:您无法完全控制何时甚至是否会发生绘制

解决方案是在paintComponent外部更改对象状态,然后在paintComponent内使用该状态(字段)


有关更多详细信息,请显示更多(部分!)代码。

不确定当两个组件之间存在父/子关系时,为什么要使用图形转换(…)方法。在进行自定义绘制时使用图形转换

在处理Swing组件时,您可能应该使用布局管理器,让布局管理器调用每个组件上的
setLocation(…)
方法,以便相对于父组件绘制子组件


您不应尝试自己管理该位置。有关更多信息,请阅读Swing教程中的部分。

请显示一些代码!。。。。。。。。。。。。。。。。代码??