我做了一个简单的课程来练习布局。大部分都可以正常使用,但是直到我单击按钮后,我的JLabel
才出现。我在早期版本中具有与JTextField
和JTextArea
相同的信息,但确实更喜欢JLabel
的外观,但是即使在其他迭代中,也只有在单击时才会显示或尝试从窗口中选择文本。我尝试过将text
变量设置为可见后,将其添加到under
面板中,并将整个under
面板设置为除了{{1} }要求整个对象,但没有一个起作用。
这是我的代码:
setVisible(true)
答案 0 :(得分:1)
快速解决方案是仅在覆盖的ISBN
方法的开头调用@@isbn
,以便框架确保正确地进行清除/清理/布局。
最佳解决方案应考虑以下因素:
覆盖方法时,请添加super.paint(g)
批注,以便IDE会在您不正确覆盖时警告您。
覆盖绘画方法时,请调用其paint
实现,以确保由父组件正确清理事物。
对于自定义绘画,最好使用@Override
(通常是super
)。
对于自定义绘画,请覆盖JComponent
(并调用JPanel
),请勿使用paintComponent(Graphics)
。
您不需要扩展super.paintComponent
,只需创建一个paint(Graphics)
并使用它即可。
在下面的示例中,添加了一个自定义JFrame
类用于自定义绘画,并且该应用程序不再扩展JFrame
:
JPanel