Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Красивое меню на яве 
:(
    Опции темы
sashka
Дата 4.10.2005, 15:58 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как сделать симпатишное меню с картинками... Я хочу сделать так чтобы в каждом пункте был свой цвет. Аля плавный переход, но слабо знаком с явой. Спасибо.
  Вверх
batigoal
Дата 4.10.2005, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



У меня есть подозрение, что тебя интересует JavaScript...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Zandr
Дата 7.10.2005, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 433
Регистрация: 16.7.2004
Где: Новосибирск

Репутация: 9
Всего: 13



sashka, Картинки ч-з ...setIcon(...), а плавный переход можно примерно в таком ключе:
Код

import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.PopupMenuUI;

/**
 * JMenu with gradient background.
 * This implementstion shows only the idea of how to do such tasks.
 * @author Alexander Kabanov
 */
public class JGradientMenu extends JMenu {
    private Color topLeftColor;
    private Color bottomRightColor;

    public JGradientMenu(String name, Color topLeftColor, Color bottomRightColor) {
        super(name);
        this.topLeftColor = topLeftColor;
        this.bottomRightColor = bottomRightColor;
        getPopupMenu().setUI(new GradientPopupMenuUI());
    }

    public JMenuItem add(JMenuItem menuItem) {
        menuItem.setOpaque(false);
        return super.add(menuItem);
    }

    private class GradientPopupMenuUI extends PopupMenuUI {
        public void paint(Graphics g, JComponent c) {
            Graphics2D graphics = (Graphics2D) g;
            Paint paint = new GradientPaint(0, 0, topLeftColor, 
                    c.getWidth(), c.getHeight(), bottomRightColor);
            graphics.setPaint(paint);
            graphics.fillRect(0, 0, c.getWidth(), c.getHeight());
            super.paint(g, c);
        }
    }

    /**
     * Test starter
     */
    public static void main(String[] args) {
        JMenuBar menuBar = new JMenuBar();
        JMenu menu = new JGradientMenu("Colours", Color.YELLOW, Color.CYAN);
        menuBar.add(menu);
        String[] menues = {"First", "Second", "Third", "Fourth", "Fifth"};
        for (String name : menues) {
            menu.add(new JMenuItem(name));
        }

        JFrame testFrame = new JFrame("Gradient Menu Test Frame");
        testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        testFrame.setSize(300, 200);
        testFrame.setJMenuBar(menuBar);
        testFrame.setVisible(true);
    }
}

Показана только идея. Это далеко не универсальный вариант smile

Это сообщение отредактировал(а) Zandr - 7.10.2005, 10:31
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.