import java.awt.event.*;
import java.awt.*;
import java.applet.*;
//Diese Applikation öffnet ein Fenster,
//in welchem durch einen gehaltenen linken Mouse Klick
//ein Reckteck gezeichnet wird
public class WhatIsTheProblem006 extends Applet
implements AdjustmentListener {
Scrollbar schieberrot, schiebergruen, schieberblau;
int currentX, currentY, startX, startY, schieberwertrot, schieberwertgruen, schieberwertblau;
boolean dragMode = false;
//Boolean ist ein primitiver Datentypen wie "int", "float", etc.,
// die 1-Byte-Speicher - von denen nur ein Bit vom Compiler verwendet - zuweist.
// Es kann nur den Wert Wahr (true) oder Flasch (false) zugeordnet werden.
public void init() {
setBackground(Color.lightGray);
setSize(2000, 2000);
add(new Label("Rot - Anteil"));
schieberrot = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 24);
add(schieberrot);
schieberrot.addAdjustmentListener(this);
add(new Label("Grün - Anteil"));
schiebergruen = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 24);
add(schiebergruen);
schiebergruen.addAdjustmentListener(this);
add(new Label("Blau - Anteil"));
schieberblau = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 24);
add(schieberblau);
schieberblau.addAdjustmentListener(this);
}
public void adjustmentValueChanged (AdjustmentEvent e) {
schieberwertrot = schieberrot.getValue();
schieberwertgruen = schiebergruen.getValue();
schieberwertblau = schieberblau.getValue();
if (schieberwertrot >= 24) {
schieberwertrot = 24;
}
if (schieberwertgruen >= 24) {
schieberwertgruen = 24;
}
if (schieberwertblau >= 24) {
schieberwertblau = 24;
}
repaint();
}
public void paint(Graphics g) {
int beginX, beginY, width, height;
g.setColor(new Color(schieberwertrot*10+1, schieberwertgruen*10+1, schieberwertblau*10+1));
if (dragMode == true) {
beginX = Math.min(startX, currentX);
beginY = Math.min(startY, currentY);
width = Math.abs(currentX - startX);
height = Math.abs(currentY - startY);
g.drawRect(beginX, beginY, width, height);
}
else {
g.setColor (Color.black);
g.drawString("Draw a box by dragging the mouse", 10, 25);
}
}
public boolean mouseDown(Event event, int x, int y) {
dragMode = true;
startX = x;
startY = y;
return true;
}
public boolean mouseUp(Event event, int x, int y) {
dragMode = false;
return true;
}
public boolean mouseDrag(Event event, int x, int y) {
if (dragMode == true) {
currentX = x;
currentY = y;
repaint();
}
return true;
}
}