Hvordan tegne piksler i Java
Java's Graphics2D-klasse gir metoder for å tegne primitive former, for eksempel linjer, rektangler og ellipser. Det mangler en metode for tegning av piksler. Du kan farge en enkelt piksel i en Java-tegning ved å tegne en linje med samme startpunkt og sluttpunkt. Før du kan tegne piksler, må du opprette en JFrame eller annen synlig komponent og legge til en egendefinert komponent med en overfylt malingsmetode.
1.
Lag et nytt prosjekt i ditt utviklingsmiljø. Legg til en ny klasse i prosjektet ditt og kaller det "Tegningskomponent." Skriv følgende linjer med kode øverst i den nye klassen for å importere de nødvendige klassene:
importer java.awt.Component; importer java.awt.Color; importer java.awt.Graphics; importer java.awt.Graphics2D; importer java.util.Random;
2.
Skriv "utvider komponent" umiddelbart etter "class DrawingComponent", men før åpningsbraketten i den nye klassedeklarasjonen. Legg til følgende kode inne i klassebrakettene for å overstyre komponent klassen maling metoden og initialisere et nytt Graphics2D objekt:
Offentlig tomrom (Graphics g) {Graphics2D g2d = (Graphics2D) g;
}
3.
Angi fargen på den første piksel du vil tegne ved å skrive inn følgende kode inne i parentesen til den nye malingsmetoden:
g.setColor (Color.CYAN);
Bruk en hvilken som helst farge som er tilgjengelig som en konstant i Java-fargeklassen.
4.
Definer koordinatene til punktet ditt, og skriv deretter en linje som begynner og slutter ved disse koordinatene:
int x = 25; int y = 32; g.drawLine (x, y, x, y);
5.
Opprett en ny JFrame og legg til din DrawingComponent til den med denne koden i prosjektets hovedmetode:
int frameWidth = 300; int rammeHøyde = 300; javax.swing.JFrame frame = ny javax.swing.JFrame (); frame.setSize (frameWidth, frameHeight); frame.setVisible (true); frame.getContentPane (). add (new DrawingComponent ());
Tips
- Legg inn koden fra trinn 3 og 4 i et sett med nestede løkker for å lage mønstre. For eksempel vil følgende kode opprette mønstre av vertikale svarte og cyan linjer:
- for (int i = 0; i <300; i ++) {
- for (int j = 0; j <300; j ++) {
- if (i% 2 == 0) {
- g.setColor (Color.BLACK);
- }ellers{
- g.setColor (Color.CYAN);
- }
- g.drawLine (jeg, j, i, j);
- }
- }