kann mir jemand helfen das zu beenden? komme nicht mehr voran.
die Aufgabe lautet :
Funktion 1: Das Applet erlaubt, in einem festen Rechteck graue Gitterlinien zu zeichnen. Die Maschenweite des Gitters und die Dicke der Gitterlinien lassen sich je durch einen Schie- beregler einstellen. (Vgl. Render-Funktionen in Pixelgraphikprogrammen.)
Funktion 2: Das Appletfenster zeigt in einem Rechteck die Farbe an, in welcher das Gitter gezeichnet wird. Die RGB-Anteile können durch drei Schieberegler einzeln beeinflusst wer- den. Die RGB-Anteile können aber auch durch die Eingabe von Zahlenwerte zwischen 0 und 255 festgelegt werden (Eingabefehler abfangen!). Die Schieberegler sind nicht die Java- eigenen, sondern viel grosszügiger angelegt.
Wie Ihr erkennen werded bin ich noch bei der Funktion 1, mit Fehlern =)
KURZ SO ALS INFO ICH BIN EINSTEIGER UND ZWAR SO WAS VON
Ich hab zur zeit das:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Scrollbar;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
public class AUFGABE__3 extends Applet {
Scrollbar dicke_slider = new Scrollbar(Scrollbar.HORIZONTAL);
Scrollbar weite_slider = new Scrollbar(Scrollbar.VERTICAL);
int weite = 10;
int dicke = 10;
@Override
public void init() {
dicke_slider.setMinimum(1); // kleinster wert auf dem slider
dicke_slider.setMaximum(20); // groesster wert auf dem slider
dicke_slider.setValue(10); // start wert des sliders
dicke_slider.setVisibleAmount(1); // breite des reglers
this.add(dicke_slider); // slider zum applet hinzufuegen
weite_slider.setMinimum(1);
weite_slider.setMaximum(20);
weite_slider.setValue(10);
weite_slider.setVisibleAmount(1);
this.add(weite_slider);
WeiteAdjustmentListener weite_listener = new WeiteAdjustmentListener();
weite_slider.addAjustmentListener(weite_listener);
DickeAdjustementListener dicke_listener = new DickeAdjustementListener();
dicke_slider.addAdjustmentListener(dicke_listener); // listener bei slider registrieren
super.init(); // initialisieren der elternklasse (unwichtig)
}
// innere Klasse fuer den Listener des dicke_slider
class DickeAdjustementListener implements AdjustmentListener {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
// wenn gerade eingestellt wird
if(e.getValueIsAdjusting()){
System.out.println("adjusting thickness...");
} else {
dicke = e.getValue();
System.out.println(dicke);
repaint();
}
}
class WeiteAdustmentListener implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getValueIsAdjusting()){
System.out.println("adjusting width...");
} else {
weite = e.getValue();
System.out.println(weite);
repaint();
}
}
}
@Override
public void paint(Graphics g) {
System.out.println("painting...");
int x_0 = 50;
int y_0 = 150;
int breite = 500;
int hoehe = 500;
// rechteck zeichnen
g.drawRect(x_0, y_0, breite, hoehe);
// farbe aendern
Color backupColor = g.getColor();
g.setColor(Color.GRAY);
// gitter zeichnen
int y = y_0;
int linienAnzahl = calculateNumberOfLines(hoehe);
for(int i = 0; i < linienAnzahl; i++){
g.fillRect(x_0 , y, breite, dicke);
// y fuer naechste linie erhoehen
y = y + dicke + weite;
}
// farbe zurueck setzen
g.setColor(backupColor);
// alles andere zeichnen lassen (z.B. den slider)
super.paint(g);
}
int calculateNumberOfLines(int space){
// berechnet anzahl der moeglichen linien im gegebenen platz
// pro linie braucht man (dicke + weite) platz.
return (space / (dicke + weite));
}
}
}
Ich bitte um Hilfe danke für Eure Unterstützung
die Aufgabe lautet :
Funktion 1: Das Applet erlaubt, in einem festen Rechteck graue Gitterlinien zu zeichnen. Die Maschenweite des Gitters und die Dicke der Gitterlinien lassen sich je durch einen Schie- beregler einstellen. (Vgl. Render-Funktionen in Pixelgraphikprogrammen.)
Funktion 2: Das Appletfenster zeigt in einem Rechteck die Farbe an, in welcher das Gitter gezeichnet wird. Die RGB-Anteile können durch drei Schieberegler einzeln beeinflusst wer- den. Die RGB-Anteile können aber auch durch die Eingabe von Zahlenwerte zwischen 0 und 255 festgelegt werden (Eingabefehler abfangen!). Die Schieberegler sind nicht die Java- eigenen, sondern viel grosszügiger angelegt.
Wie Ihr erkennen werded bin ich noch bei der Funktion 1, mit Fehlern =)
KURZ SO ALS INFO ICH BIN EINSTEIGER UND ZWAR SO WAS VON
Ich hab zur zeit das:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Scrollbar;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
public class AUFGABE__3 extends Applet {
Scrollbar dicke_slider = new Scrollbar(Scrollbar.HORIZONTAL);
Scrollbar weite_slider = new Scrollbar(Scrollbar.VERTICAL);
int weite = 10;
int dicke = 10;
@Override
public void init() {
dicke_slider.setMinimum(1); // kleinster wert auf dem slider
dicke_slider.setMaximum(20); // groesster wert auf dem slider
dicke_slider.setValue(10); // start wert des sliders
dicke_slider.setVisibleAmount(1); // breite des reglers
this.add(dicke_slider); // slider zum applet hinzufuegen
weite_slider.setMinimum(1);
weite_slider.setMaximum(20);
weite_slider.setValue(10);
weite_slider.setVisibleAmount(1);
this.add(weite_slider);
WeiteAdjustmentListener weite_listener = new WeiteAdjustmentListener();
weite_slider.addAjustmentListener(weite_listener);
DickeAdjustementListener dicke_listener = new DickeAdjustementListener();
dicke_slider.addAdjustmentListener(dicke_listener); // listener bei slider registrieren
super.init(); // initialisieren der elternklasse (unwichtig)
}
// innere Klasse fuer den Listener des dicke_slider
class DickeAdjustementListener implements AdjustmentListener {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
// wenn gerade eingestellt wird
if(e.getValueIsAdjusting()){
System.out.println("adjusting thickness...");
} else {
dicke = e.getValue();
System.out.println(dicke);
repaint();
}
}
class WeiteAdustmentListener implements AdjustmentListener {
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getValueIsAdjusting()){
System.out.println("adjusting width...");
} else {
weite = e.getValue();
System.out.println(weite);
repaint();
}
}
}
@Override
public void paint(Graphics g) {
System.out.println("painting...");
int x_0 = 50;
int y_0 = 150;
int breite = 500;
int hoehe = 500;
// rechteck zeichnen
g.drawRect(x_0, y_0, breite, hoehe);
// farbe aendern
Color backupColor = g.getColor();
g.setColor(Color.GRAY);
// gitter zeichnen
int y = y_0;
int linienAnzahl = calculateNumberOfLines(hoehe);
for(int i = 0; i < linienAnzahl; i++){
g.fillRect(x_0 , y, breite, dicke);
// y fuer naechste linie erhoehen
y = y + dicke + weite;
}
// farbe zurueck setzen
g.setColor(backupColor);
// alles andere zeichnen lassen (z.B. den slider)
super.paint(g);
}
int calculateNumberOfLines(int space){
// berechnet anzahl der moeglichen linien im gegebenen platz
// pro linie braucht man (dicke + weite) platz.
return (space / (dicke + weite));
}
}
}
Ich bitte um Hilfe danke für Eure Unterstützung