我们可以在任何Swing GUI组件上绘制东西吗?

时间:2013-12-05 05:44:11

标签: java swing

我们可以在任何Swing GUI组件上绘制东西吗?如果是,那么我们为什么要使用面板作为 用于绘图而不是标签或按钮的画布?

3 个答案:

答案 0 :(得分:1)

首先看看Perfoming Custom Painting,了解有关如何在Swing中完成绘画的详细信息

问题的第二部分取决于你想要达到的目标。

一般来说,您不应直接在现有组件上绘制,因为绘制实际上是由UI委托完成的。如果要更改这些组件的外观,则应考虑创建自定义UI委托以根据需要执行绘制。这可以确保绘画正确完成。

这并不能阻止你覆盖它的paintComponent方法,但是对于按钮,列表,表格和树等复杂的控件,你可能会发现很难达到你想要的结果。

同样,表,树和列表使用渲染器来提供自定义输出

答案 1 :(得分:0)

让我们假设标签是价格标签而面板是一张纸。你经常在现实生活中使用按钮和价格标签paint()吗? :)

答案 2 :(得分:0)

标签和按钮具有许多额外的“功能”和功能,可能会妨碍你或咬你的bug。几乎从字面上看,JPanel是一个可以开始的清白。