所以当我尝试创建一个绘画方法,即
if let first = self.tabBarController.viewControllers[0] as? FirstVc {
self.delegate = first
}
当我运行程序时,我的JFrame窗口将完全变黑。如果我从代码中删除paint方法,我的普通图像将出现在我的JFrame窗口中。我知道我确实没有在我的代码中的任何其他位置使用.paint()方法,因为我现在只是将此方法添加到我的代码中。有人知道为什么会这样吗?
更新,我正在使用eclipse
答案 0 :(得分:2)
首先看一下Performing Custom Painting和Painting in AWT and Swing,以便更好地了解绘画如何在Swing中发挥作用。
基本上,当绘制子系统决定需要更新组件时,它会根据需要调用您的paint
方法。
因为你已经覆盖它基本上什么都不做,所以什么也没画。
作为一般建议,您应该避免覆盖paint
等顶级容器{1}},因为它们实际上是复合组件。也就是说,它们实际上是由一系列构建UI的层构成的
有关详细信息,请参阅How to use root panes,但基本上......