Java Language
2D-grafik i Java
Sök…
Introduktion
Grafik är visuella bilder eller mönster på någon yta, till exempel en vägg, duk, skärm, papper eller sten för att informera, illustrera eller underhålla. Det inkluderar: bildrepresentation av data, som i datorstödd design och tillverkning, i inställning och grafik, och i utbildnings- och rekreationsprogramvara. Bilder som genereras av en dator kallas datorgrafik.
Java 2D API är kraftfullt och komplex. Det finns flera sätt att göra 2D-grafik i Java.
Exempel 1: Rita och fylla en rektangel med Java
Detta är ett exempel som skriver ut rektangel och fyller färg i rektangeln. https://i.stack.imgur.com/dlC5v.jpg
De flesta metoderna i klassen Grafik kan delas in i två grundläggande grupper:
- Rita och fylla metoder så att du kan återge grundläggande former, text och bilder
- Attribut inställningsmetoder som påverkar hur den ritningen och fyllningen visas
Kodexempel: Låt oss börja med ett litet exempel på att rita en rektangel och fylla färg i den. Där förklarar vi två klasser, en klass är MyPanel och andra klass är Test. I klassen MyPanel använder vi drawRect () & fillRect () mathods för att rita rektangel och fylla Färg i den. Vi ställer in färgen med metoden setColor (Color.blue). I Second Class testar vi vår grafik som är Test Class, vi gör en ram och sätter MyPanel med p = nytt MyPanel () -objekt i det. Genom att testa Test Class ser vi en rektangel och en blå färgfylld rektangel.
Första klass: 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
}
}
Andra klass: 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();
}
}
För mer förklaring om gränslayout: https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
paintComponent ()
- Det är en huvudmetod för målning
- Som standard målar det först bakgrunden
- Därefter utför den anpassad målning (ritcirkel, rektanglar etc.)
Graphic2D hänvisar till Classic2D Class
Obs: Java 2D API låter dig enkelt utföra följande uppgifter:
- Rita linjer, rektanglar och annan geometrisk form.
- Fyll dessa former med solida färger eller lutningar och strukturer.
- Rita text med alternativ för fin kontroll över teckensnitt och återgivningsprocess.
- Rita bilder, eventuellt använda filteroperationer.
- Använd operationer som komposition och transformering under någon av ovanstående återgivningsoperationer.
Exempel 2: Rita och fylla oval
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 höjd, int bredd);
Denna metod drar en oval vid specificerat x- och y-läge med given höjd och bredd.
g2.fillOval (int x, int y, int höjd, int bredd); Denna metod kommer att fylla en oval vid angiven position x och y med given höjd och bredd.