繁体   English   中英

在JPanel外部可以看到JPanel中的图形

[英]Make Graphics from JPanel visible outside JPanel

我有一个矩形,我使用repaint()沿着JPanel移动。 当矩形的位置到达JPanel外部的位置时,它不再可见。 如何在JPanel外部显示它?

这是我的绘画方法:

public void paintComponent (Graphics g) {
    g.setColor(Color.red);
    g.fillRect(dist, 0, 10, 10);
    dist++;
}

更新:

我在JFrame中有多个JPanel,我使用GridBagLayout定位。 JPanels代表街道上的车道和矩形车。 在JPanel外部显示矩形的原因是让汽车改变车道。 JPanel似乎适合我,设置汽车的第一个位置。

这个问题有更好的解决方案吗?

你说:

我有一个矩形,我使用repaint()沿着JPanel移动。 当矩形的位置到达JPanel外部的位置时,它不再可见。 如何在JPanel外部显示它?

如果JPanel正在绘制它,简短的答案是:“你不能”。

更长的答案取决于您尝试绘制JPanel的位置以及GUI的其余部分是如何设置的。


编辑
你现在说:

我在JFrame中有多个JPanel,我使用GridBagLayout定位。 JPanels代表街道上的车道和矩形车。 在JPanel外部显示矩形的原因是让汽车改变车道。 JPanel似乎适合我,设置汽车的第一个位置。

如果我按照你的方式进行编码,我不会让这些本地JPanels绘制汽车,而是让汽车成为自己的精灵,存在于街道的不同层上,可能使用JLayeredPane。 只要此JPanel不是不透明的,它就可以存在于自己的JPanel中,它包含整个地图。 然后你可以按照自己喜欢的方式移动汽车。

如前所述,如果你想让它占据更大的区域,你应该使JPanel更大或者将paintComponent放在父组件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM