0

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

4

2 回答 2

2

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

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

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

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

另请参阅:如何使用边框

于 2008-10-14T00:46:02.070 回答
0

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

于 2008-10-14T00:44:41.090 回答