Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:

Error. Page cannot be displayed. Please contact your service provider for more details. (19)


Как сделать градиентную заливку

Поиск:
Спасибо ElectricalStorm за предоставленную информацию

В виде примера можно увидеть.

Код
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class GradientPanel extends JPanel {
    private Color color1;
    private Color color2;

    public GradientPanel() {
        this(Color.blue, Color.green);
    }

    public GradientPanel(Color c1, Color c2) {
        super();
        this.color1 = c1;
        this.color2 = c2;
    }

    public void setColor1(Color c1) {
        this.color1 = c1;
        repaint();
    }

    public void setColor2(Color c2) {
        this.color2 = c2;
        repaint();
    }     // Overloaded in order to paint the background

    protected void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        int w = getWidth();
        int h = getHeight();
        GradientPaint gradient = new GradientPaint(0, 0, color1, w, h, color2, true);
        g2.setPaint(gradient);
        g2.fillRect(0, 0, w, h);
    }

    public static void main(String[] args) {
        final GradientPanel pGradient = new GradientPanel();
        Color[] colors = {createColor("Black", Color.black), createColor("Blue", Color.blue),
                          createColor("Green", Color.green), createColor("yellow", Color.yellow),
                          createColor("orange", Color.orange), createColor("red", Color.red),
                          createColor("white", Color.white)};
        JComboBox c1 = new JComboBox(colors);
        c1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JComboBox combo = (JComboBox) e.getSource();
                Color c = (Color) combo.getSelectedItem();
                pGradient.setColor1(c);
            }
        });
        JComboBox c2 = new JComboBox(colors);
        c2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JComboBox combo = (JComboBox) e.getSource();
                Color c = (Color) combo.getSelectedItem();
                pGradient.setColor2(c);
            }
        });
        JPanel pColors = new JPanel(new GridLayout(0, 2));
        pColors.add(c1);
        pColors.add(c2);
        c1.setSelectedItem(colors[1]);
        c2.setSelectedItem(colors[2]);
        JFrame f = new JFrame("Gradient test");
        f.setSize(300, 200);
        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f.getContentPane().add(pColors, BorderLayout.NORTH);
        f.getContentPane().add(pGradient, BorderLayout.CENTER);
        f.setVisible(true);
    }

    private static Color createColor(String name, Color c) {
        final String colorname = name;
        Color color = new Color(c.getRed(), c.getGreen(), c.getBlue()) {
            private String name = colorname;

            public String toString() {
                return name;
            }
        };
        return color;
    }
}


Выглядеть это будет так:
user posted image
Автор: ElectricalStorm






Просмотров: 4236

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную