hallo
habe folgendes Problem ich habe in meinem Programm 6 Scrollbar Elemente eingebaut von denen 3 das RGB Farbsystem und 3 das HSB Farbsystem betreffen. Wie kann ich es hinbekommen dass ich z.b. erst an der Rot Scrollbar etwas verändere und dann mit dem Helligkeitsregler im HSB System etwas anpasse? Bisher lassem sich die HSB Regler noch gar nicht verwenden. irgendwie muss man diese Scrollbar elemente glaube ich miteinander bekannt machen damit sie zusammenarbeiten können?
Ich poste einfach mal mein komplettes Programm:
habe folgendes Problem ich habe in meinem Programm 6 Scrollbar Elemente eingebaut von denen 3 das RGB Farbsystem und 3 das HSB Farbsystem betreffen. Wie kann ich es hinbekommen dass ich z.b. erst an der Rot Scrollbar etwas verändere und dann mit dem Helligkeitsregler im HSB System etwas anpasse? Bisher lassem sich die HSB Regler noch gar nicht verwenden. irgendwie muss man diese Scrollbar elemente glaube ich miteinander bekannt machen damit sie zusammenarbeiten können?
Ich poste einfach mal mein komplettes Programm:
Code:
import java.awt.*;
import java.awt.event.*;
public class Regler extends Frame implements AdjustmentListener
{
private Scrollbar s1 = new Scrollbar(Scrollbar.HORIZONTAL);
private Scrollbar s2 = new Scrollbar(Scrollbar.HORIZONTAL);
private Scrollbar s3 = new Scrollbar(Scrollbar.HORIZONTAL);
private Scrollbar s4 = new Scrollbar(Scrollbar.HORIZONTAL);
private Scrollbar s5 = new Scrollbar(Scrollbar.HORIZONTAL);
private Scrollbar s6 = new Scrollbar(Scrollbar.HORIZONTAL);
//Startfarbe:
private Color farbe = new Color(255, 255, 255, 100);
//Zufallsfarbe:
int random1 = (int) (Math.random()*255);
int random2 = (int) (Math.random()*255);
int random3 = (int) (Math.random()*255);
private Color farbe_random = new Color (random1,random2,random3,100);
private Panel farbfeld = new Panel();
private Panel farbfeld2 = new Panel();
private Label l11;
private Label l22;
private Label l33;
private Label l44;
private Label l55;
private Label l66;
public int rot;
public int gruen;
public int blau;
public int farbe_hsb;
public int saettigung;
public int helligkeit;
public Regler(){
setLayout(null);
setBounds(0,0,1000,600);
setBackground(Color.BLACK);
setTitle("Farben aendern");
addWindowListener(new WindowAdapter()
{
public void windowClosing(final WindowEvent e) {
System.exit(0);
}
});
farbfeld.setBounds(500,50,200,500);
farbfeld.setBackground(farbe);
add(farbfeld);
farbfeld2.setBounds(750,50,200,500);
farbfeld2.setBackground(farbe_random);
add(farbfeld2);
// ---------------------------
// Regler1: Rot RGB
s1.setBounds(100,50,250,20); //(Start x, Start y, Länge x, Länge y)
s1.addAdjustmentListener(this);
s1.setName("rot");
s1.setMinimum(0);
s1.setMaximum(265);
add(s1);
Label l1 = new Label("RGB Rot ");
l1.setBounds(20,50,70, 20);
l1.setBackground(Color.WHITE);
add(l1);
l11 = new Label();
l11.setBounds(360, 50, 80, 20);
l11.setBackground(Color.WHITE);
add(l11);
// Regler2: Gruen RGB
s2.setBounds(100,100,250,20);
s2.addAdjustmentListener(this);
s2.setName("gruen");
s2.setMinimum(0);
s2.setMaximum(265);
add(s2);
Label l2 = new Label("RGB Gruen ");
l2.setBounds(20,100, 70, 20);
l2.setBackground(Color.WHITE);
add(l2);
l22 = new Label();
l22.setBounds(360, 100, 80, 20);
l22.setBackground(Color.WHITE);
add(l22);
// Regler3: Blau RGB
s3.setBounds(100,150,250,20);
s3.addAdjustmentListener(this);
s3.setName("blau");
s3.setMinimum(0);
s3.setMaximum(265);
add(s3);
Label l3 = new Label("RGB Blau ");
l3.setBounds(20,150, 70, 20);
l3.setBackground(Color.WHITE);
add(l3);
l33 = new Label();
l33.setBounds(360, 150, 80, 20);
l33.setBackground(Color.WHITE);
add(l33);
// ---------------------------
// Regler4:
s4.setBounds(100,250,250,20); //(Start x, Start y, Länge x, Länge y)
s4.addAdjustmentListener(this);
s4.setName("rot");
s4.setMinimum(0);
s4.setMaximum(265);
add(s4);
Label l4 = new Label("HSB Farbe ");
l4.setBounds(20,250,70, 20);
l4.setBackground(Color.WHITE);
add(l4);
l44 = new Label();
l44.setBounds(360,250, 80, 20);
l44.setBackground(Color.WHITE);
add(l44);
// Regler5:
s5.setBounds(100,300,250,20); //(Start x, Start y, Länge x, Länge y)
s5.addAdjustmentListener(this);
s5.setName("rot");
s5.setMinimum(0);
s5.setMaximum(265);
add(s5);
Label l5 = new Label("Sättigung ");
l5.setBounds(20,300,70, 20);
l5.setBackground(Color.WHITE);
add(l5);
l55 = new Label();
l55.setBounds(360,300, 80, 20);
l55.setBackground(Color.WHITE);
add(l55);
// Regler6:
s6.setBounds(100,350,250,20); //(Start x, Start y, Länge x, Länge y)
s6.addAdjustmentListener(this);
s6.setName("rot");
s6.setMinimum(0);
s6.setMaximum(265);
add(s6);
Label l6 = new Label("Helligkeit ");
l6.setBounds(20,350,70, 20);
l6.setBackground(Color.WHITE);
add(l6);
l66 = new Label();
l66.setBounds(360,350, 80, 20);
l66.setBackground(Color.WHITE);
add(l66);
// Zweites Farbfeld
}
public void adjustmentValueChanged(final AdjustmentEvent e)
{
float[] hsbvals = Color.RGBtoHSB(rot, gruen, blau, null); //umrechnen in hsb
farbe_hsb = ((int)(hsbvals[0]*360)); // Grad
saettigung = ((int)(hsbvals[0]*360)); // Sättigung
helligkeit = ((int)(hsbvals[2]*100)); // Helligkeit
l11.setText(""+rot); // Textfelder rgb
l22.setText(""+gruen);
l33.setText(""+blau);
l44.setText(""+ farbe_hsb); // Textfelder hsb
l55.setText(""+ saettigung);
l66.setText(""+ helligkeit);
s4.setValue(farbe_hsb); // Hsb Regler werden angepasst.
s5.setValue(saettigung);
s6.setValue(helligkeit);
rot = s1.getValue(); // Farbfeld wird umgefärbt
gruen = s2.getValue();
blau = s3.getValue();
farbfeld.setBackground(new Color(rot, gruen, blau));
}
public static void main(String [] args)
{
new Regler().setVisible(true);
}
}