Szukaj…


Wprowadzenie

Grafika to obrazy lub projekty wizualne na niektórych powierzchniach, takie jak ściana, płótno, ekran, papier lub kamień, które służą do informowania, ilustrowania lub rozrywki. Obejmuje to: obrazową reprezentację danych, jak w komputerowym projektowaniu i produkcji, w składzie i grafice oraz w oprogramowaniu edukacyjnym i rekreacyjnym. Obrazy generowane przez komputer nazywane są grafiką komputerową.

Java 2D API jest potężny i złożony. Istnieje wiele sposobów tworzenia grafiki 2D w Javie.

Przykład 1: Narysuj i wypełnij prostokąt za pomocą Java

To jest przykład, w którym drukuje prostokąt i wypełnia kolor w prostokącie. https://i.stack.imgur.com/dlC5v.jpg wprowadź opis zdjęcia tutaj

Większość metod klasy Graphics można podzielić na dwie podstawowe grupy:

  1. Metody rysowania i wypełniania, umożliwiające renderowanie podstawowych kształtów, tekstu i obrazów
  2. Atrybuty ustawiają metody, które wpływają na wygląd tego rysunku i wypełnienia

Przykład kodu: Zacznijmy od małego przykładu narysowania prostokąta i wypełnienia go kolorem. Tam deklarujemy dwie klasy, jedna klasa to MyPanel, a druga klasa to Test. W klasie MyPanel używamy matematyki drawRect () i fillRect () do rysowania prostokąta i wypełniania w nim Kolor. Ustawiamy kolor metodą setColor (Color.blue). W drugiej klasie testujemy naszą grafikę, która jest klasą testową, tworzymy ramkę i umieszczamy w niej MyPanel z p = new MyPanel (). Po uruchomieniu klasy testowej widzimy prostokąt i prostokąt wypełniony kolorem niebieskim.

Pierwsza klasa: MyPanel

import javax.swing.*;
import java.awt.*;
// MyPanel extends JPanel, which will eventually be placed in a JFrame
public class MyPanel extends JPanel { 
    // custom painting is performed by the paintComponent method
    @Override
    public void paintComponent(Graphics g){
        // clear the previous painting
        super.paintComponent(g);
        // cast Graphics to Graphics2D
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.red); // sets Graphics2D color
        // draw the rectangle
        g2.drawRect(0,0,100,100); // drawRect(x-position, y-position, width, height)
        g2.setColor(Color.blue);
        g2.fillRect(200,0,100,100); // fill new rectangle with color blue
    } 
}

Druga klasa: test

import javax.swing.;
import java.awt.;    
public class Test { //the Class by which we display our rectangle    
    JFrame f;    
    MyPanel p;    
    public Test(){    
        f = new JFrame();    
        // get the content area of Panel.    
        Container c = f.getContentPane();    
        // set the LayoutManager
        c.setLayout(new BorderLayout());        
        p = new MyPanel();    
        // add MyPanel object into container    
        c.add(p); 
        // set the size of the JFrame
        f.setSize(400,400);    
        // make the JFrame visible
        f.setVisible(true);    
        // sets close behavior; EXIT_ON_CLOSE invokes System.exit(0) on closing the JFrame
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    }       
    
    public static void main(String args[ ]){    
        Test t = new Test();     
    } 
}

Więcej informacji na temat układu granicy: https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html

paintComponent ()

  • Jest to główna metoda malowania
  • Domyślnie najpierw maluje tło
  • Następnie wykonuje niestandardowe malowanie (okrąg rysunkowy, prostokąty itp.)

Graphic2D odnosi się do klasy Graphic2D

Uwaga: Java 2D API umożliwia łatwe wykonywanie następujących zadań:

  • Rysuj linie, prostokąty i każdy inny kształt geometryczny.
  • Wypełnij te kształty jednolitymi kolorami lub gradientami i teksturami.
  • Narysuj tekst z opcjami dokładnej kontroli nad czcionką i procesem renderowania.
  • Rysuj obrazy, opcjonalnie stosując operacje filtrowania.
  • Zastosuj operacje, takie jak komponowanie i przekształcanie podczas dowolnej z powyższych operacji renderowania.

Przykład 2: Rysowanie i wypełnianie owalne

import javax.swing.*;    
import java.awt.*;    

public class MyPanel extends JPanel {
    @Override
    public void paintComponent(Graphics g){    
        // clear the previous painting
        super.paintComponent(g);    
        Graphics2D g2 = (Graphics2D)g;    
        g2.setColor(Color.blue);    
        g2.drawOval(0, 0, 20,20);  
        g2.fillOval(50,50,20,20);    
    }
}

g2.drawOval (int x, int y, int height, int width);
Ta metoda narysuje owal w określonej pozycji xiy o podanej wysokości i szerokości.

g2.fillOval (int x, int y, int height, int width); Ta metoda wypełni owal w określonej pozycji xiy o określonej wysokości i szerokości.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow