Редактировать: если вы ссылаетесь на выделенный прямоугольник, такой как тот, который появляется при перетаскивании мышью на рабочий стол, то ваш подход, безусловно, будет действительным и осуществимым; Я не верю, что в Swing есть какие-либо функции, которые обеспечивают реализацию этой функции. Я не знаю, поддерживает ли JDesktop это, но это может стоить посмотреть.
Редактировать 2: Также взгляните на Стеклянная панель . Было бы намного удобнее реализовать то, что вы описываете, чем делать все на одной панели.
Если я правильно понимаю ваш вопрос, эффекты, возникающие при наведении или нажатии на кнопку, контролируются Look and Feel (L & F). Вы можете выбрать нужный стиль и стиль среди тех, которые доступны в операционной системе хоста, используя класс javax.swing.UIManager
. Написание собственного внешнего вида - это нетривиальная задача, которая обычно занимает несколько недель, даже для человека, который имеет опыт использования приложений для редактирования изображений и знает, как программировать графический пользовательский интерфейс.
Вот пример (из этой ссылки ), который показывает вам, как изменить L & F на Nimbus:
try {
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
// If Nimbus is not available, you can set the GUI to another look and feel.
}
Есть много других доступных, но стоит отметить, что многие разработчики (и пользователи) предпочитают использовать внешний вид и поведение системы по умолчанию, а не тот, который по умолчанию для компонентов Java Swing.