我们可以在任何Swing GUI组件上绘制东西吗?如果是,那么我们为什么要使用面板作为 用于绘图而不是标签或按钮的画布?
答案 0 :(得分:1)
首先看看Perfoming Custom Painting,了解有关如何在Swing中完成绘画的详细信息
问题的第二部分取决于你想要达到的目标。
一般来说,您不应直接在现有组件上绘制,因为绘制实际上是由UI委托完成的。如果要更改这些组件的外观,则应考虑创建自定义UI委托以根据需要执行绘制。这可以确保绘画正确完成。
这并不能阻止你覆盖它的paintComponent
方法,但是对于按钮,列表,表格和树等复杂的控件,你可能会发现很难达到你想要的结果。
同样,表,树和列表使用渲染器来提供自定义输出
答案 1 :(得分:0)
让我们假设标签是价格标签而面板是一张纸。你经常在现实生活中使用按钮和价格标签paint()
吗? :)
答案 2 :(得分:0)
标签和按钮具有许多额外的“功能”和功能,可能会妨碍你或咬你的bug。几乎从字面上看,JPanel是一个可以开始的清白。