Java Language
Grafica 2D in Java
Ricerca…
introduzione
I grafici sono immagini o disegni visivi su una superficie, come un muro, una tela, uno schermo, una carta o una pietra per informare, illustrare o intrattenere. Comprende: rappresentazione grafica dei dati, come nella progettazione e produzione assistita da computer, nella composizione e nelle arti grafiche e nei software educativi e ricreativi. Le immagini generate da un computer si chiamano computer graphics.
L'API Java 2D è potente e complessa. Ci sono molti modi per fare grafica 2D in Java.
Esempio 1: Disegna e riempie un rettangolo usando Java
Questo è un esempio che stampa il rettangolo e il colore di riempimento nel rettangolo. https://i.stack.imgur.com/dlC5v.jpg
La maggior parte dei metodi della classe Graphics può essere divisa in due gruppi di base:
- Disegna e riempie i metodi, consentendo di eseguire il rendering di forme, testo e immagini di base
- Attributi che impostano i metodi, che influenzano il modo in cui appare il disegno e il riempimento
Esempio di codice: iniziamo questo con un piccolo esempio di disegno di un rettangolo e riempimento di colore in esso. Qui dichiariamo due classi, una classe è MyPanel e l'altra classe è Test. Nella classe MyPanel utilizziamo i mathod drawRect () e fillRect () per disegnare il rettangolo e riempire il colore in esso. Impostiamo il colore con il metodo setColor (Color.blue). In Second Class testiamo la nostra grafica, che è Test Class, creiamo un Frame e inseriamo MyPanel con p = new MyPanel () oggetto. In esecuzione Test Class vediamo un rettangolo e un rettangolo pieno di colore blu.
Prima classe: 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
}
}
Seconda classe: 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();
}
}
Per ulteriori spiegazioni sul layout del bordo: https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
paintComponent ()
- È un metodo principale per dipingere
- Di default, per prima cosa dipinge lo sfondo
- Dopo di ciò, esegue la pittura personalizzata (disegno cerchio, rettangoli ecc.)
Graphic2D fa riferimento a Graphic2D Class
Nota: l'API Java 2D consente di eseguire facilmente le seguenti attività:
- Disegna linee, rettangoli e qualsiasi altra forma geometrica.
- Riempi quelle forme con colori solidi o sfumature e trame.
- Disegna il testo con le opzioni per un controllo preciso sul carattere e sul processo di rendering.
- Disegna le immagini, opzionalmente applicando le operazioni di filtro.
- Applicare operazioni come compositing e trasformazione durante una delle operazioni di rendering di cui sopra.
Esempio 2: disegno e riempimento ovale
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);
Questo metodo disegnerà un ovale alla posizione xey specificata con altezza e larghezza specificate.
g2.fillOval (int x, int y, int height, int width); Questo metodo riempie un ovale alla posizione xey specificata con altezza e larghezza specificate.