Как заставить Java Canvas выглядеть поднятым из своего контейнера - PullRequest
0 голосов
/ 14 октября 2008

У меня есть простой GUI-компонент, написанный на Java. Класс рисует аналоговые часы в java.awt.canvas.
Этот холст затем содержится в JFrame - я хочу дать холсту трехмерный «рельефный» эффект - почти как добавление тени к фотографии. Есть ли простой способ сделать это?

Ответы [ 2 ]

2 голосов
/ 14 октября 2008

Если вы используете JFrame, у вас есть два варианта:

  1. Сначала добавьте свой собственный компонент в JPanel, а затем добавьте его в JFrame.

  2. Вместо наследования от java.awt.Canvas вы можете наследовать от JComponent. Тогда вам нужно будет выполнить всю рисование в методе paintComponent () вместо просто paint () (вы можете просто переименовать текущий метод рисования).

В обоих случаях вы теперь можете установить границу с помощью метода setBorder () (в JPanel или вашем компоненте), который вы можете получить из BorderFactory.

См. Также: Как использовать границы

0 голосов
/ 14 октября 2008

Если бы вы использовали элемент Swing, вы бы использовали метод createRaisedBevelBorder () из BorderFactory и установили границу холста на результирующую границу. Canvas - это компонент AWT, поэтому вам нужно обернуть его компонентом Swing, для которого можно установить границу.

...