为什么在Java中当我尝试将窗口从屏幕一侧移动到中心时,那么整个JPanel不会重新绘制它自己?
示例:当我尝试将窗口从屏幕一侧(因此只有大约一半窗口可见)拖到中心时发生这种情况:

如果我添加一个组件监听器,然后放入repaint()该componentMoved方法,它将正常工作,但每次移动窗口时它将重新绘制.
相关代码:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TEST extends JFrame
{
public TEST()
{
super ("TEST!");
setSize (500,400);
setLocationRelativeTo(null);
setContentPane(new MyPanel());
addComponentListener(this);
}
class MyPanel extends JPanel
{
public void paintComponent (Graphics g)
{
super.paintComponent(g);
Graphics g2d = (Graphics2D) g;
int R = (int)(Math.random()*256);
int G = (int)(Math.random()*256);
int B= (int)(Math.random()*256);
Color color = new Color(R, G, B);
g2d.setColor(color);
g2d.fillOval(0, 0, …Run Code Online (Sandbox Code Playgroud)