我一直在使用Swing编写一个简单的动画,你有一个JFrame,并且在JFrame接收鼠标点击的任何地方都会启动波纹动画。我使用一个内部动画类,为每个动画扩展JPanel,以防必须同时播放多个动画(我不知道这是否是最好的方法)。当我单击时,我将新动画添加到JFrame并将点击的坐标传递给动画。但是,动画重绘/ paintComponent方法不起作用。根据我的理解,重绘应该调用paint / paintComponent方法,但在排除故障时,甚至不会访问这些方法。那么我怎么能让paint方法执行呢?提前谢谢。
resp.product.stock_current += resp.quantity
resp.product.save()
}
答案 0 :(得分:0)
当我点击时,我将新的动画添加到JFrame并将点击的坐标传递给动画。但是,动画重绘/ paintComponent方法无效。
默认情况下,Swing组件的默认大小为(0,0),因此无需绘制任何内容。
将组件添加到可见GUI时,需要调用布局管理器,以便为组件指定大小/位置。基本代码是:
panel.add(...);
panel.revalidate();
panel.repaint(); // sometimes needed
在您的情况下,您将动画面板添加到框架的内容窗格中,因此您需要重新验证()框架。