Sådan tegner du pixels i Java
Java's Graphics2D-klasse giver metoder til at tegne primitive former, såsom linjer, rektangler og ellipser. Det mangler en metode til tegning af pixels. Du kan farve en enkelt pixel i en Java-tegning ved at tegne en linje med samme startpunkt og slutpunkt. Inden du kan tegne pixels, skal du oprette en JFrame eller en anden synlig komponent og tilføje en brugerdefineret komponent med en overstyret malingsmetode.
1.
Opret et nyt projekt i dit udviklingsmiljø. Tilføj en ny klasse til dit projekt og kald det "Tegning Komponent." Indtast følgende linjer kode øverst i den nye klasse for at importere de krævede klasser:
importer java.awt.Component; importer java.awt.Color; importer java.awt.Graphics; importer java.awt.Graphics2D; importer java.util.Random;
2.
Type "udvider komponent" umiddelbart efter "klasse TegningComponent", men før åbningsbeslaget i din nye klassedeklaration. Tilføj følgende kode inde i klassebeslagene for at tilsidesætte komponentklassemaling-metoden og initialisere et nyt Graphics2D-objekt:
offentlig tomrumsmaling (grafik g) {Graphics2D g2d = (Graphics2D) g;
}
3.
Indstil farven på den første pixel, som du vil tegne ved at indtaste følgende kode inde i parenteserne af den nye maling metode:
g.setColor (Color.CYAN);
Brug en hvilken som helst farve, der er tilgængelig som en konstant i Java's Color-klasse.
4.
Definer koordinaterne for dit punkt, og træk derefter en linje, der begynder og slutter ved disse koordinater:
int x = 25; int y = 32; g.drawLine (x, y, x, y);
5.
Opret en ny JFrame og tilføj din DrawingComponent til den med denne kode i dit projekts hovedmetode:
int frameWidth = 300; int frameHeight = 300; javax.swing.JFrame frame = ny javax.swing.JFrame (); frame.setSize (frameWidth, frameHeight); frame.setVisible (sand); frame.getContentPane (). tilføj (ny DrawingComponent ());
Tips
- Embed koden fra trin 3 og 4 i et sæt nestede løkker for at oprette mønstre. For eksempel vil følgende kode skabe mønstre af vertikale sorte og cyan linjer:
- for (int i = 0; i <300; i ++) {
- for (int j = 0; j <300; j ++) {
- hvis (i% 2 == 0) {
- g.setColor (Color.BLACK);
- }andet{
- g.setColor (Color.CYAN);
- }
- g.drawLine (i, j, i, j);
- }
- }