如何从其容器中提取Java Canvas外观

时间:2008-10-14 00:31:17

标签: java user-interface canvas awt

我有一个用Java编写的简单GUI组件。该类在java.awt.canvas中绘制模拟时钟 然后这个画布包含在JFrame中 - 我想要做的是给画布一个3d“凸起”效果 - 就像为照片添加阴影一样。 有一种简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:2)

如果您使用的是JFrame,那么您有两个选择:

  1. 首先将您自己的组件添加到JPanel,然后将其添加到JFrame。

  2. 您可以从JComponent继承,而不是从java.awt.Canvas继承。然后你必须在paintComponent()方法中进行所有绘画,而不仅仅是paint()(你可以重命名当前的绘制方法)。

  3. 在这两种情况下,您现在可以使用setBorder()方法(在JPanel或您的组件上)设置边框,您可以从BorderFactory获取。

    另请参阅:How to Use Borders

答案 1 :(得分:0)

如果您使用的是Swing元素,则可以使用BorderFactory的createRaisedBevelBorder()方法,并将画布的边框设置为生成的边框。 Canvas是一个AWT组件,因此您需要将其包装在可以设置边框的Swing组件中。