添加绘制方法时,JFrame窗口变黑

时间:2018-05-02 01:58:24

标签: java graphics jframe awt graphics2d

所以当我尝试创建一个绘画方法,即

if let first = self.tabBarController.viewControllers[0] as? FirstVc {
   self.delegate = first
}

当我运行程序时,我的JFrame窗口将完全变黑。如果我从代码中删除paint方法,我的普通图像将出现在我的JFrame窗口中。我知道我确实没有在我的代码中的任何其他位置使用.paint()方法,因为我现在只是将此方法添加到我的代码中。有人知道为什么会这样吗?

更新,我正在使用eclipse

1 个答案:

答案 0 :(得分:2)

首先看一下Performing Custom PaintingPainting in AWT and Swing,以便更好地了解绘画如何在Swing中发挥作用。

基本上,当绘制子系统决定需要更新组件时,它会根据需要调用您的paint方法。

因为你已经覆盖它基本上什么都不做,所以什么也没画。

作为一般建议,您应该避免覆盖paint等顶级容器{1}},因为它们实际上是复合组件。也就是说,它们实际上是由一系列构建UI的层构成的

有关详细信息,请参阅How to use root panes,但基本上......

All the layers