Спасибо 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; } } |
Выглядеть это будет так: [IMG]http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=download_file&articleid=108&attachid=1[/IMG]
--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
|