代码之家  ›  专栏  ›  技术社区  ›  Clayton

如何从容器中提升Java画布外观

  •  0
  • Clayton  · 技术社区  · 16 年前

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

    2 回复  |  直到 16 年前
        1
  •  2
  •   Simon Lehmann    16 年前

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

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

    2. 您可以从jcomponent继承,而不是从java.awt.canvas继承。然后,您必须在paintcomponent()方法中完成所有的绘制,而不是只使用paint()(您只需重命名当前的绘制方法)。

    在这两种情况下,您现在都可以使用set border()方法(在jpanel或您的组件上)从borderFactory中获取边界。

    参见: How to Use Borders

        2
  •  0
  •   Steve Moyer    16 年前

    如果您使用的是Swing元素,那么您将使用borderFactory的createRaisedBevelOrder()方法,并将画布的边框设置为结果边框。Canvas是一个awt组件,所以您需要将它包装在一个Swing组件中,您可以对其设置边框。