Hi Leute!
Hab da folgendes Problem: Ich will mit 2 ComboBoxen die Start- und Endfarbe auswählen, und dazwischen einen fliessenden Farbübergang machen. Hab schon herausgefunden, dass das mit GradientPaint gehen müsste, ich bekomme es leider trotzdem nicht hin. Kann mir wer sagen was ich da falsch mache?
Hier der Code:
mfg sooks
Hab da folgendes Problem: Ich will mit 2 ComboBoxen die Start- und Endfarbe auswählen, und dazwischen einen fliessenden Farbübergang machen. Hab schon herausgefunden, dass das mit GradientPaint gehen müsste, ich bekomme es leider trotzdem nicht hin. Kann mir wer sagen was ich da falsch mache?
Hier der Code:
Code:
import java.awt.*;
import java.awt.Color;
import java.awt.event.*;
import javax.swing.*;
public class Farbverlauf extends JFrame
implements ActionListener
{ String[] farben = {"red", "green", "blue"};
JComboBox cb1 = new JComboBox(farben);
JComboBox cb2 = new JComboBox(farben);
JPanel oben = new JPanel(new GridLayout(1, 2));
JPanel unten = new JPanel();
Color wert1 = Color.red;
Color wert2 = Color.blue;
Graphics g;
public Farbverlauf()
{ oben.add(cb1);
oben.add(cb2);
cb1.addActionListener(this);
cb2.addActionListener(this);
getContentPane().add(oben, BorderLayout.NORTH);
getContentPane().add(unten, BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==cb1 || e.getSource()==cb2)
{ repaint();
switch(cb1.getSelectedIndex())
{ case 0: wert1 = Color.red;
break;
case 1: wert1 = Color.green;
break;
case 2: wert1 = Color.blue;
break;
}
switch(cb2.getSelectedIndex())
{ case 0: wert2 = Color.red;
break;
case 1: wert2 = Color.green;
break;
case 2: wert2 = Color.blue;
break;
}
}
}
public void paint(Graphics g)
{ Graphics2D g2d = (Graphics2D)g;
GradientPaint gp = new GradientPaint( 0f, 55f, wert1, 800f, 55f, wert2);
g2d.setPaint(gp);
g2d.fillRect(0,55, 800, 600);
}
public static void main(String[] args)
{ JFrame start = new Farbverlauf();
start.addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
start.setTitle("Farbverlauf");
start.setSize(800, 600);
start.setVisible(true);
}
}
mfg sooks