Эффект границы стекла Vista в Java Swing / AWT - PullRequest
0 голосов
/ 19 апреля 2009

Я пытаюсь создать оверлей с фоном, подобным Vista Aero Glass, вместо обычного окна. Часть моего ответа выглядит как здесь , но мне интересно, как получить эффект размытия в Swing / AWT. Это выглядит как начало:

public BufferedImage processImage(BufferedImage image) {
    float[] blurMatrix = { 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f /  
            9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f, 1.0f / 9.0f };
    BufferedImageOp blurFilter = new ConvolveOp(new Kernel(3, 3, blurMatrix),
            ConvolveOp.EDGE_NO_OP, null);
    return blurFilter.filter(image, null);
}

... но я бы очень хотел провести близкий матч. Кажется, процесс должен быть:

  1. Размытие фонового изображения
  2. закрасьте прозрачным серым (или любым другим цветом bg),
  3. Затем закрасьте непрозрачное содержимое окна

Если я правильно понял, я мог бы выбросить тени границ окна Aero.

Я на правильном пути? Как точно я должен сделать размытие, чтобы получить такой же вид? Может быть, кто-то уже решил эту проблему? (Для справки откройте меню «Пуск» Vista и посмотрите на правую сторону.)

1 Ответ

1 голос
/ 31 августа 2009

У меня нет решения, но вы можете определенно наложить цвет на стадии размытия. Все, что вам когда-либо нужно будет знать об эффектах Swing и эффектах изображений Swing, есть в превосходных Filthy Rich Clients . Ответ на ваш вопрос определенно там.

На самом деле, если вы загляните в раздел примеров и загрузите код главы 8 с этого сайта, есть код для размытия и оттенка, который вам требуется.

Спасибо, JT

...