Hallo ich möchte nun dass man bei meinem Programm eine Zufallsfarbe vorgegeben bekommt und dann mit den Reglern diese Farbe einstellen soll. mit einem klick auf einen Button wird dann die Einstelleung bewertet. mein Problem ist dass ich nicht genau weis wie ich mit MouseListener und AdjustmentListener in einer Klasse umgehen soll. wird das mit Komma getrennt, oder ist mein ansatz komplett falsch:
der code unten hat folgende Fehlermeldung:
code:
der code unten hat folgende Fehlermeldung:
Regler.java:179: addMouseListener(java.awt.event.MouseListener) in java.awt.Component cannot be applied to (Regler)
vergleich_btn.addMouseListener(this);
^
1 error
code:
Code:
import java.awt.*;
import java.awt.event.*;
public class Regler extends Frame implements AdjustmentListener /*, MouseListener*/
{
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:
public static int random1 = (int) (Math.random()*255);
public static int random2 = (int) (Math.random()*255);
public static 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 static int rot;
public static int gruen;
public static 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(360);
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(100);
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(100);
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);
// Schalter
Button vergleich_btn = new Button("vergleiche");
vergleich_btn.setBounds(20, 500, 100, 100);
vergleich_btn.addMouseListener(this);
add(vergleich_btn);
}
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 String vergleich ()
{
String gut = "nicht schlecht";
String sehrgut = "super";
String schlecht = "schlecht";
if ((random1 - rot < 5) && (random2 - gruen < 5) && (random3 - blau < 5))
{
return sehrgut;
}
else if ((random1 - rot < 15) && (random2 - gruen < 15) && (random3 - blau < 15))
{
return gut;
}
else
return schlecht;
}
public static void main(String [] args)
{
new Regler().setVisible(true);
System.out.println(random1);
System.out.println(random2);
System.out.println(random3);
System.out.println(vergleich()) ;
}
}