// JavaProject FilledRectangle
Ein farbiges Rechteck wird auf einer farbigen Zeichenfläche ausgegeben.
Die hierfür notwendigen Grafik-Methoden sind in der Klasse Graphics2D implementiert.
paintComponent, eine von
JPanel geerbte Methode der Klasse Canvas wird mittels dieser Grafik-Methoden
überschrieben. Die
Programmierzeile super.paintComponent(g);
— in der Regel immer an erster Stelle hingeschrieben — bewirkt den Aufruf
der ursprünglich in der Superklasse von Canvas
(also in JPanel) implementierten Methode und hat insbesondere die
Löschung gegebenenfalls bereits vorhandener Inhalte der Zeichenfläche zur Folge.
Die als Parameter der Methode getBackground übergebene Farbe ist nicht die Hintergrundfarbe der Zeichenfläche, sondern es ist diejenige Farbe, welche von der Methode clearRect verwendet wird.
// FilledRectangle.java
import java.awt.*;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
class Canvas extends JPanel {
private static final long serialVersionUID = 0L;
Shape rectangle;
BasicStroke stroke;
Graphics2D g2d;
public Canvas() {
rectangle = new Rectangle2D.Float(88,
86, 90, 56);
stroke = new BasicStroke(1.5f);
}
@Override
public void paintComponent(Graphics g) { //
2D-Grafik
super.paintComponent(g);
g2d = (Graphics2D) g;
g2d.setBackground(new Color(0.2f, 0.5f, 0.8f));
g2d.clearRect(10, 10, getWidth()-20, getHeight()-20);
g2d.setPaint(Color.BLACK);
g2d.setStroke(stroke);
g2d.draw(rectangle);
g2d.setPaint(Color.ORANGE);
g2d.fill(rectangle);
}
}
class CFrame extends JFrame {
private static final long serialVersionUID = 0L;
Image icon;
Canvas canvas;
Color bgcol;
public CFrame() {
setTitle("Farbiges Rechteck");
icon = Toolkit.getDefaultToolkit().getImage("dh.png");
setIconImage(icon);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 349, 301);
canvas = new Canvas();
add(canvas);
setVisible(true);
}
}
public class FilledRectangle {
public static void main(String[] args) {
new CFrame();
}
}
