Java Language
2D-afbeeldingen in Java
Zoeken…
Invoering
Afbeeldingen zijn visuele afbeeldingen of ontwerpen op een bepaald oppervlak, zoals een muur, canvas, scherm, papier of steen om te informeren, illustreren of te entertainen. Het omvat: grafische weergave van gegevens, zoals bij computerondersteund ontwerp en fabricage, bij zetwerk en grafische kunst, en in educatieve en recreatieve software. Afbeeldingen die door een computer worden gegenereerd, worden computerafbeeldingen genoemd.
De Java 2D API is krachtig en complex. Er zijn meerdere manieren om 2D-afbeeldingen in Java te maken.
Voorbeeld 1: Teken en vul een rechthoek met behulp van Java
Dit is een voorbeeld waarbij de rechthoek wordt afgedrukt en de kleur in de rechthoek wordt gevuld. https://i.stack.imgur.com/dlC5v.jpg
De meeste methoden van de grafische klasse kunnen worden onderverdeeld in twee basisgroepen:
- Teken- en vulmethoden, waarmee u basisvormen, tekst en afbeeldingen kunt weergeven
- Attributen-instellingsmethoden, die beïnvloeden hoe die tekening en vulling verschijnen
Codevoorbeeld: Laten we beginnen met een klein voorbeeld van het tekenen van een rechthoek en het invullen van de kleur erin. Daar verklaren we twee klassen, één klasse is MyPanel en andere klasse is Test. In de klasse MyPanel gebruiken we drawRect () & fillRect () mathods om een rechthoek te tekenen en er kleur in te vullen. We stellen de kleur in volgens de methode setColor (Color.blue). In de tweede klasse testen we onze afbeelding, testklasse, maken we een frame en plaatsen we MyPanel met het object p = new MyPanel (). Door de testklasse uit te voeren zien we een rechthoek en een blauwe rechthoek.
Eerste Klasse: 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
}
}
Tweede Klasse: 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();
}
}
Voor meer uitleg over Border Layout: https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
paintComponent ()
- Het is een belangrijke methode om te schilderen
- Standaard wordt eerst de achtergrond getekend
- Daarna voert het aangepaste verven uit (tekencirkel, rechthoeken enz.)
Graphic2D verwijst naar Graphic2D Class
Opmerking: Met de Java 2D API kunt u eenvoudig de volgende taken uitvoeren:
- Teken lijnen, rechthoeken en elke andere geometrische vorm.
- Vul die vormen met effen kleuren of verlopen en texturen.
- Teken tekst met opties voor nauwkeurige controle over het lettertype en het renderingproces.
- Teken afbeeldingen met eventueel filterbewerkingen.
- Pas bewerkingen toe zoals compositing en transformeren tijdens een van de bovenstaande renderingbewerkingen.
Voorbeeld 2: Ovaal tekenen en vullen
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 hoogte, int breedte);
Deze methode tekent een ovaal op de opgegeven x- en y-positie met de opgegeven hoogte en breedte.
g2.fillOval (int x, int y, int hoogte, int breedte); Deze methode vult een ovaal op de opgegeven x- en y-positie met de opgegeven hoogte en breedte.