我一直在努力解决这个问题。起初,我只使用了ActionListener,然后我添加了paintComponent,但我不知道该放什么。我阅读了一些教程并使用他们的代码作为示例,但它仍然无效。现在,最终结果与没有PaintComponent时的结果相同。
WHEN 1 THEN 'LOL1' WHEN 2 THEN 'LOL2'
答案 0 :(得分:1)
如果您尝试将图像动态添加到面板,则需要将标签添加到面板。不需要任何自定义绘画。
将组件添加到可见GUI的基本代码是:
panel.add(...);
panel.revalidate();
panel.repaint();
另外,请勿尝试将帧的大小设置为图像的大小。框架包含标题栏和边框。相反,您可以使用frame.pack()
;
答案 1 :(得分:0)
我注意到了几个问题:
图片永远不会被初始化为任何东西,所以它是null,有效地使标签为空。我想也许你的例子不完整?
一旦我将图像初始化为某些内容,您的示例仍无效。原来添加标签而不指定任何约束基本上什么都不做(我假设因为在没有约束的情况下将组件添加到边框布局将其置于面板已经存在的中心)。当我将标签添加到BorderLayout.NORTH时,一切正常(尽管将帧大小调整为图像大小使其仅部分可见,因为帧包含OK按钮)