0% found this document useful (0 votes)
226 views24 pages

Kom Graf

1. The document contains code for drawing shapes like ellipses, polygons, and combining areas in Java using classes like Graphics2D, Ellipse2D, Polygon, and Area. 2. It also includes code examples for creating a GUI with Swing components like JFrame, JButton, JColorChooser and handling events. 3. The code samples demonstrate drawing shapes, applying transformations, gradients, text layout and clipping as well as creating animations and handling user input.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
226 views24 pages

Kom Graf

1. The document contains code for drawing shapes like ellipses, polygons, and combining areas in Java using classes like Graphics2D, Ellipse2D, Polygon, and Area. 2. It also includes code examples for creating a GUI with Swing components like JFrame, JButton, JColorChooser and handling events. 3. The code samples demonstrate drawing shapes, applying transformations, gradients, text layout and clipping as well as creating animations and handling user input.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 24

1. import java.awt.

*; int y[] = { 100,300,100,300 };


import javax.swing.*; int pts = x.length;
import java.awt.geom.*; g.fillPolygon(x,y,pts);
public class test12D extends JFrame { }
public test12D() { }
super("Contoh Membuat Piring Output :
Terbang");
setSize(500,300);
setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} 3. import java.awt.*;
public void paint(Graphics g) { import java.awt.event.*;
Graphics2D g2d = (Graphics2D)g; import javax.swing.*;
Shape s = new Ellipse2D.Double(0, import java.awt.geom.*;
0, 100, 100); public class addarea2D extends JApplet {
g2d.draw(s); public void paint (Graphics g) {
} Graphics2D g2 = (Graphics2D)g;
public static void main (String [] args) Shape s1 = new
{ Ellipse2D.Double(0,0,100,100);
test12D app = new test12D(); Shape s2 = new
} Ellipse2D.Double(60,0,100,100);
} Area a1 = new Area (s1);
Output : Area a2 = new Area (s2);
g2.translate(20,50);
g2.setPaint(Color.blue);
g2.draw(s1);
g2.draw(s2);
a1.intersect(a2);

2. import java.awt.Graphics; g2.setPaint(Color.green);

public class MyPoly2 extends g2.fill(a2);

java.applet.Applet { }

public void paint(Graphics g) { }

int x[] = { 100,300,300,100 }; Output :


});
addWindowListener(new
WindowAdapter() {
public void
windowClosing(WindowEvent we) {
4. import java.awt.*; System.exit(0);
import java.awt.event.*; }
import javax.swing.*; });
public class RedTown extends JFrame { }
public static void main(String[] args) { }
new RedTown(); Output :
}
public RedTown() {
super("RedTown v1.0");
createUI();
setVisible(true);
}
protected void createUI() {
setSize(400, 400);
setLocation(100, 100);
getContentPane().setLayout(new
GridBagLayout());
JButton colorButton = new
JButton("Choose a color..."); 5. import java.awt.*;
getContentPane().add(colorButton); import java.awt.event.*;
colorButton.addActionListener(new import java.awt.font.*;
ActionListener() { import java.awt.geom.AffineTransform;
public void import java.net.URL;
actionPerformed(ActionEvent ae) { import javax.swing.*;
Color c = public class Starry extends JApplet {
JColorChooser.showDialog(RedTown.thi public void init() {
s, "Choose a color...", getBackground()); Image starry = new
if (c != null) ImageIcon("yourFile.gif").getImage();
getContentPane().setBackground(c); StarPanel starPanel = new
} StarPanel(starry);
getContentPane().add(starPanel, f.getContentPane().add(starPanel,
BorderLayout.CENTER); BorderLayout.CENTER);
} f.setSize(new Dimension(550, 200));
protected URL getURL(String f.setVisible(true);
filename) { }
URL codeBase = }
this.getCodeBase(); class StarPanel extends JPanel {
URL url = null; Image img;
try { int w, h;
url = new URL(codeBase, public StarPanel(Image img) {
filename); this.img = img;
} }
catch public void paintComponent(Graphics
(java.net.MalformedURLException e) { g) {
System.out.println("Couldn't super.paintComponent(g);
create image: " + "badly specified URL"); setBackground(Color.white);
return null; w = getSize().width;
} h = getSize().height;
return url; Graphics2D g2;
} g2 = (Graphics2D) g;
public static void main(String[] args) { g2.setRenderingHint(RenderingHints.KE
Image starry = new Y_ANTIALIASING,
ImageIcon("yourFile.gif").getImage(); RenderingHints.VALUE_ANTIALIAS_
StarPanel starPanel = new ON);
StarPanel(starry); g2.setRenderingHint(RenderingHints.KE
JFrame f = new JFrame("Starry"); Y_RENDERING,
f.addWindowListener(new RenderingHints.VALUE_RENDER_QU
WindowAdapter() { ALITY);
public void FontRenderContext frc =
windowClosing(WindowEvent e) { g2.getFontRenderContext();
System.exit(0); Font f = new Font("Helvetica", 1, w
} / 10);
}); String s = new String("The Starry
Night");
TextLayout textTl = new f.setSize(new Dimension(300,300));
TextLayout(s, f, frc); f.setVisible(true);
AffineTransform transform = new }
AffineTransform(); public void paintComponent(Graphics
Shape outline = g) {
textTl.getOutline(null); Graphics2D g2d = (Graphics2D)g;
Rectangle r = outline.getBounds(); //fill elipse2D.Double
transform = g2.getTransform(); GradientPaint gp4 = new
transform.translate(w / 2 - (r.width / GradientPaint(0,25,Color.blue,25,25,
2), h / 2 + (r.height / 2)); Color.black,true);
g2.transform(transform); g2d.setPaint(gp4);
g2.setColor(Color.blue); g2d.fillRect(20,20,300,40);
g2.draw(outline); }
g2.setClip(outline); }
g2.drawImage(img, r.x, r.y, r.width, Output :
r.height, this);
}
}
Output : 7. import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.util.Random;
6. import java.awt.*; public class PiringTerbang extends
import javax.swing.*; JFrame {
import java.awt.geom.*; public PiringTerbang() {
public class MencobaGradien extends super("Contoh Membuat Piring
JPanel { Terbang");
public static void main(String[] args) { setSize(500,300);
JFrame f = new JFrame("Basic setDefaultCloseOperation
Sample 2D"); (JFrame.EXIT_ON_CLOSE);
MencobaGradien bs = new setVisible(true);
MencobaGradien(); }
f.getContentPane().add("Center",bs); public void paint(Graphics comp) {
f.pack();
Graphics2D g2d = (Graphics2D) gp.lineTo(130, 220);
comp; gp.lineTo(190, 220);
//--- Buat Bintang gp.curveTo(200, 230, 210, 240,
Random acak = new Random(); 210,255);
for (int i=0; i<1000; i++) { gp.lineTo(195, 255);
double x = acak.nextInt(600); gp.quadTo(185, 275, 175, 255);
double y = acak.nextInt(220); //Roda Kanan
Line2D.Double sisi_bintang1 = gp.lineTo(135, 255);
new Line2D.Double (x-1, y-1, x+1, y+1); gp.quadTo(125, 275, 115, 255);
Line2D.Double sisi_bintang2 = //Roda Kiri
new Line2D.Double (x-1, y+1, x+1, y-1); gp.lineTo(100,255);
g2d.draw(sisi_bintang1); g2d.setPaint(Color.red);
g2d.draw(sisi_bintang1); g2d.fill(gp);
} g2d.draw(gp);
//--- Buat UFO }
Ellipse2D.Double ufo = new public static void main (String [] args)
Ellipse2D.Double(250, 50, 100, 25); {
Line2D.Double antena = new PiringTerbang app = new
Line2D.Double (300, 50, 300, 35); PiringTerbang();
g2d.setPaint(Color.black); }
g2d.fill(ufo); }
g2d.draw(ufo); Output :
g2d.draw(antena);
//--- Buat Garis Mendatar
Line2D.Double horison = new
Line2D.Double(20, 245, 480, 245);
g2d.draw(horison);
//--- Buat Mobil
GeneralPath gp = new
GeneralPath();
gp.moveTo(100, 255); // ke ujung 8. import java.awt.*;

kiri bawah import java.awt.geom.*;

gp.lineTo(100, 240); import javax.swing.*;

gp.lineTo(120, 235); public class AreaAdding extends JPanel {


DrawingCanvas canvas= new gp.closePath();
DrawingCanvas(); area1 = new Area(gp);
public AreaAdding() { ellipse = new Ellipse2D.Double(w
add(canvas); / 4, h / 4, w / 2, h / 2);
canvas.area1 = new area2 = new Area(ellipse);
Area(canvas.gp); }
canvas.area1.add(canvas.area2); public void paint(Graphics g) {
canvas.repaint(); Graphics2D g2D = (Graphics2D)
} g;
public static void main(String arg[]) { g2D.setStroke(new
JFrame frame = new JFrame(); BasicStroke(2.0f));
frame.setDefaultCloseOperation(JFrame. g2D.draw(area1);
EXIT_ON_CLOSE); g2D.draw(area2);
frame.getContentPane().add("Center", }
new AreaAdding()); }
frame.pack(); }
frame.setSize(new Dimension(400, Output :
300));
frame.setVisible(true);
}
class DrawingCanvas extends Canvas {
GeneralPath gp;
Ellipse2D ellipse; 9. import java.awt.*;
Area area1, area2; import javax.swing.*;
public DrawingCanvas() { import java.awt.geom.*;
setBackground(Color.white); public class SolidPaint extends JPanel {
setSize(350, 250); public static void main(String[] args) {
int w = getWidth(); JFrame f = new JFrame("Basic
int h = getHeight(); Sample 2D");
gp = new GeneralPath(); SolidPaint bs = new SolidPaint();
gp.moveTo(w / 8, h / 2); f.getContentPane().add("Center",bs);
gp.lineTo(w / 2, h / 4); f.pack();
gp.lineTo(7 * w / 8, h / 2); f.setSize(new Dimension(300,300));
gp.lineTo(w / 2, 3 * h / 4); f.setVisible(true);
} float[] dash2 ={1f,1f,1f};
public void paint(Graphics g) { float[] dash3 ={4f,0f,2f};
Graphics2D g2 = (Graphics2D)g; float[] dash4 ={4f,4f,1f};
Arc2D pie = new Arc2D.Float(0, 50, g2d.drawLine(20,40,250,40);
150, 150, -30, 90, Arc2D.PIE); BasicStroke bs1 = new
g2.setPaint(Color.blue); BasicStroke(1, BasicStroke.CAP_BUTT,
g2.fill(pie); BasicStroke.JOIN_ROUND,1.0f,dash1,2f
} );
} BasicStroke bs2 = new
Output : BasicStroke(1, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_ROUND,1.0f,dash2,2f
);
BasicStroke bs3 = new
BasicStroke(1, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_ROUND,1.0f,dash3,2f
);
10. import java.awt.*;
BasicStroke bs4 = new
import javax.swing.*;
BasicStroke(1, .CAP_BUTT,
import java.awt.geom.*;
BasicStroke.JOIN_ROUND,1.0f,dash4,2f
public class MencobaAtributGaris );
extends JPanel { g2d.setStroke(bs1);
public static void main(String[] args) {
g2d.drawLine(20,80,250,80);
JFrame f = new JFrame("Basic
g2d.setStroke(bs2);
Sample 2D");
g2d.drawLine(20,120,250,120);
MencobaAtributGaris bs = new
g2d.setStroke(bs3);
MencobaAtributGaris();
g2d.drawLine(20,160,250,160);
f.getContentPane().add("Center",bs);
g2d.setStroke(bs4);
f.pack();
g2d.drawLine(20,200,250,2);
f.setSize(new Dimension(300,300)); }
f.setVisible(true); }
} Output :
public void paintComponent(Graphics
g) {
Graphics2D g2d = (Graphics2D)g;
float[] dash1 ={2f,0f,2f};
int w = getSize().width;
int h = getSize().height;
Ellipse2D e = new
Ellipse2D.Float(w / 4.0f, h / 4.0f, w /
2.0f, h / 2.0f);
g2.setClip(e);
g2.setColor(Color.red);
11. import java.awt.*;
g2.fillRect(0, 0, w, h);
import java.awt.geom.Ellipse2D;
Rectangle r = new Rectangle(w/2,
import javax.swing.*;
h/2, w/2, h/2);
public class
g2.clip(r);
ClipBetweenRectangleEllipse2D extends
g2.setColor(Color.green);
JFrame {
g2.fillRect(0, 0, w, h);
public
}
ClipBetweenRectangleEllipse2D() {
}
getContentPane().add(new
Output :
DrawingCanvas());
setDefaultCloseOperation(JFrame.EXIT_
ON_CLOSE);
setSize(500, 500);
setVisible(true);
}
public static void main(String arg[]) {
new 12. import java.awt.*;

ClipBetweenRectangleEllipse2D(); import javax.swing.*;

} class MyCanvas extends JComponent {

} public void paint(Graphics g) {

class DrawingCanvas extends JPanel { int[] x1 = new int[]{0,250,500};

DrawingCanvas() { int[] y1 = new int[]{500,100,500};

setSize(300, 300); int[] x2 = new int[]{50,250,450};

setBackground(Color.white); int[] y2 = new int[]{450,150,450};

} int[] x3 = new int[]{100,250,400};

public void paint(Graphics g) { int[] y3 = new int[]{400,200,400};

Graphics2D g2D = (Graphics2D) g; g.setColor(Color.black);

Graphics2D g2 = (Graphics2D) g; g.fillPolygon (x1, y1, 3);


g.setColor(Color.green); Image image = new
g.fillPolygon (x2, y2, 3); ImageIcon("c5.jpg").getImage();
g.setColor(Color.red); double delta[] = { 3, 3 };
g.fillPolygon (x3, y3, 3); public Clipping() {
g.setColor(Color.yellow); timer = new Timer(15, this);
g.fillOval (225,300,50,50); timer.start();
} }
} public void paint(Graphics g) {
public class DrawPolygon { Graphics2D g2d = (Graphics2D) g;
public static void main(String[] a) { g2d.setClip(new
JFrame window = new JFrame(); Ellipse2D.Double(x, y, radius, radius));
window.setBounds(30, 30, 600, g2d.drawImage(image, 5, 5, null);
600); }
window.getContentPane().add(new public static void main(String[] args) {
MyCanvas()); JFrame frame = new JFrame();
window.setVisible(true); frame.add(new Clipping());
} frame.setDefaultCloseOperation(JFrame.
} EXIT_ON_CLOSE);
Output : frame.setSize(400, 400);
frame.setVisible(true);
}
public void
actionPerformed(ActionEvent e) {
int w = 400;
int h = 400;
if (x < 0) {
13. import java.awt.*;
delta[0] = Math.random() % 4 +
import java.awt.event.*;
5;
import java.awt.geom.Ellipse2D;
} else if (x > w - radius) {
import javax.swing.*;
delta[0] = -(Math.random() % 4 +
public class Clipping extends JPanel
5);
implements ActionListener {
}
int x = 8, y = 8, radius = 90;
if (y < 0) {
Timer timer;
delta[1] = Math.random() % 4 + public static void main(String arg[]) {
5; JFrame frame = new JFrame();
} else if (y > h - radius) { frame.setDefaultCloseOperation(JFrame.
delta[1] = -(Math.random() % 4 + EXIT_ON_CLOSE);
5); frame.getContentPane().add("Center",
} new AreaIntersecting());
x += delta[0]; frame.pack();
y += delta[1]; frame.setSize(new Dimension(400,
repaint(); 300));
} frame.setVisible(true);
} }
Output : class DrawingCanvas extends Canvas {
GeneralPath gp;
Ellipse2D ellipse;
Area area1, area2;
public DrawingCanvas() {
setBackground(Color.white);
setSize(350, 250);
int w = getWidth();
int h = getHeight();
gp = new GeneralPath();
14. import java.awt.*;
import java.awt.geom.*; gp.moveTo(w / 8, h / 2);

import javax.swing.*; gp.lineTo(w / 2, h / 4);

public class AreaIntersecting extends gp.lineTo(7 * w / 8, h / 2);


gp.lineTo(w / 2, 3 * h / 4);
JPanel {
DrawingCanvas canvas; gp.closePath();

public AreaIntersecting() { area1 = new Area(gp);


ellipse = new Ellipse2D.Double(w
canvas = new DrawingCanvas();
add(canvas); / 4, h / 4, w / 2, h / 2);

canvas.area1 = new area2 = new Area(ellipse);

Area(canvas.gp); }
public void paint(Graphics g) {
canvas.area1.intersect(canvas.area2);
canvas.repaint(); Graphics2D g2D = (Graphics2D)

} g;
g2D.setStroke(new setSize(300,300);
BasicStroke(2.0f)); setBackground(Color.WHITE);
g2D.draw(area1); setVisible(true);
g2D.draw(area2); }
} public void paint ( Graphics g ) {
} Graphics2D g2d = ( Graphics2D ) g;
} g2d.setColor(Color.RED);
Output : g2d.draw(a1);
g2d.draw(a2);
g2d.draw(a3);
g2d.draw(a4);
a1.intersect(a2);
a2.intersect(a4);
a4.intersect(a3);
15. import javax.swing.*;
a3.intersect(a5);
import java.awt.*;
}
import java.awt.geom.*;
public static void main ( String []
public class Tugas extends JDialog {
arguments ) {
Ellipse2D.Double e2dd1 = new
new Tugas();
Ellipse2D.Double(100,50,100,100);
}
Ellipse2D.Double e2dd2 = new
}
Ellipse2D.Double(50,100,100,100);
Output :
Ellipse2D.Double e2dd3 = new
Ellipse2D.Double(150,100,100,100);
Ellipse2D.Double e2dd4 = new
Ellipse2D.Double(100,150,100,100);
Ellipse2D.Double e2dd5 = new
Ellipse2D.Double(100,50,100,100);
Area a1 = new Area(e2dd1);
Area a2 = new Area(e2dd2);
16. import java.awt.*;
Area a3 = new Area(e2dd3);
import java.awt.geom.*;
Area a4 = new Area(e2dd4);
import javax.swing.*;
Area a5 = new Area(e2dd5);
public class AreaExclusiveOr extends
public Tugas() {
JPanel {
setTitle("Tugas");
DrawingCanvas canvas;
public AreaExclusiveOr() { area1 = new Area(gp);
canvas = new DrawingCanvas(); ellipse = new Ellipse2D.Double(w
add(canvas); / 4, h / 4, w / 2, h / 2);
canvas.area1 = new area2 = new Area(ellipse);
Area(canvas.gp); }
canvas.area1.exclusiveOr(canvas.area2); public void paint(Graphics g) {
canvas.repaint(); Graphics2D g2D = (Graphics2D)
} g;
public static void main(String arg[]) { g2D.setStroke(new
JFrame frame = new JFrame(); BasicStroke(2.0f));
frame.setDefaultCloseOperation(JFrame. g2D.draw(area1);
EXIT_ON_CLOSE); g2D.draw(area2);
frame.getContentPane().add("Center", }
new AreaExclusiveOr()); }
frame.pack(); }
frame.setSize(new Dimension(400, Output :
300));
frame.setVisible(true);
}
class DrawingCanvas extends Canvas {
GeneralPath gp;
Ellipse2D ellipse; 17. import java.awt.*;
Area area1, area2; import java.awt.event.*;
public DrawingCanvas() { import java.awt.font.*;
setBackground(Color.white); import javax.swing.border.*;
setSize(350, 250); import java.awt.geom.*;
int w = getWidth(); import javax.swing.*;
int h = getHeight(); public class xor extends JApplet {
gp = new GeneralPath(); Ellipse2D.Double circle, oval, leaf,
gp.moveTo(w / 8, h / 2); stem;
gp.lineTo(w / 2, h / 4); Area circ, ov, leaf1, leaf2, leaf3, leaf4,
gp.lineTo(7 * w / 8, h / 2); st2, st1;
gp.lineTo(w / 2, 3 * h / 4); public void init() {
gp.closePath(); circle = new Ellipse2D.Double();
oval = new Ellipse2D.Double(); public void
leaf = new Ellipse2D.Double(); windowClosing(WindowEvent e) {
stem = new Ellipse2D.Double(); System.exit(0);
circ = new Area(circle); }
ov = new Area(oval); });
leaf1 = new Area(leaf); JApplet applet = new xor();
leaf2 = new Area(leaf); f.getContentPane().add("Center",
leaf3 = new Area(leaf); applet);
leaf4 = new Area(leaf); applet.init();
st1 = new Area(stem); f.pack();
st2 = new Area(stem); f.setSize(new Dimension(500, 500));
setBackground(Color.white); //(width, heigth)
} f.show();
public void paint(Graphics g) { }
Graphics2D g2d = (Graphics2D) g; }
Dimension d = getSize(); Output :
g2d.setColor(Color.blue);
leaf.setFrame(100, 100, 100, 100);
leaf1 = new Area(leaf);
leaf.setFrame(175, 100, 100, 100);
leaf2 = new Area(leaf);
leaf2.exclusiveOr(leaf1);
leaf.setFrame(175, 175, 100, 100);
leaf3 = new Area(leaf); 18. import java.awt.*;

leaf3.exclusiveOr(leaf2); import java.awt.geom.*;

leaf.setFrame(100, 175, 100, 100); import javax.swing.*;


public class AreaSubtracting extends
leaf4 = new Area(leaf);
leaf4.exclusiveOr(leaf3); JPanel {

g2d.fill(leaf4); DrawingCanvas canvas;

} public AreaSubtracting() {

public static void main(String[] args) { canvas = new DrawingCanvas();

JFrame f = new JFrame("Pear"); add(canvas);

f.addWindowListener(new canvas.area1 = new

WindowAdapter() { Area(canvas.gp);
canvas.area1.subtract(canvas.area2);
canvas.repaint(); Graphics2D g2D = (Graphics2D)
} g;
public static void main(String arg[]) { g2D.setStroke(new
JFrame frame = new JFrame(); BasicStroke(2.0f));
frame.setDefaultCloseOperation(JFrame. g2D.draw(area1);
EXIT_ON_CLOSE); g2D.draw(area2);
frame.getContentPane().add("Center", }
new AreaSubtracting()); }
frame.pack(); }
frame.setSize(new Dimension(400, Output :
300));
frame.setVisible(true);
}
class DrawingCanvas extends Canvas {
GeneralPath gp;
Ellipse2D ellipse; 19. Class tes.java
Area area1, area2; import java.awt.*;
public DrawingCanvas() { import java.awt.event.*;
setBackground(Color.white); import javax.swing.*;
setSize(350, 250); import java.awt.geom.*;
int w = getWidth(); class tes extends JPanel {
int h = getHeight(); public tes() {
gp = new GeneralPath(); setPreferredSize(new
gp.moveTo(w / 8, h / 2); Dimension(760, 400));
gp.lineTo(w / 2, h / 4); }
gp.lineTo(7 * w / 8, h / 2); public void paintComponent(Graphics
gp.lineTo(w / 2, 3 * h / 4); g) {
gp.closePath(); Graphics2D g2 = (Graphics2D)g;
area1 = new Area(gp); Shape s1 = new
ellipse = new Ellipse2D.Double(w Ellipse2D.Double(100, 100, 100, 100);
/ 4, h / 4, w / 2, h / 2); Shape s2 = new
area2 = new Area(ellipse); Ellipse2D.Double(150, 150, 100, 100);
} Shape s3 = new
public void paint(Graphics g) { Ellipse2D.Double(100, 200 , 100, 100);
Shape s4 = new
Ellipse2D.Double(50, 150, 100, 100); frame.setDefaultCloseOperation(JFrame.
Shape s5 = new EXIT_ON_CLOSE);
Ellipse2D.Double(100, 100, 100, 100); JApplet applet = new
Shape s6 = new IntersectArea1();
Ellipse2D.Double(150, 150, 100, 100); applet.init();
//area geometri pertama. frame.getContentPane().add(applet);
Area a1 = new Area(s1); frame.pack();
Area a2 = new Area(s2); frame.setVisible(true);
Area a3 = new Area(s3); }
Area a4 = new Area(s4); public void init() {
Area a5 = new Area(s5); JPanel panel = new tes();
Area a6 = new Area(s6); getContentPane().add(panel);
a1.intersect(a4); }
a2.intersect(a3); }
a3.intersect(a4); Output :
a5.intersect(a6);
g2.setPaint(Color.green);
g2.fill(a1);
g2.fill(a2);
g2.fill(a3);
g2.fill(a5); 20. import java.awt.*;
} import java.awt.event.*;
} import javax.swing.*;
Class IntersectArea1.java import java.awt.geom.*;
import java.awt.*; import java.applet.Applet;
import java.awt.event.*; import java.awt.Graphics;
import javax.swing.*; import java.awt.Color;
import java.awt.geom.*; public class oke extends Applet {
public class IntersectArea1 extends public void paint(Graphics g) {
JApplet { for (int i=0; i<1000;i++) {
public static void main(String s[]) { g.drawLine(0,10*i,i*10,1000);
JFrame frame = new JFrame(); g.drawLine(0,10*i,1500,10*i);
frame.setTitle("Intersect Area"); }
Graphics2D g2 = (Graphics2D)g; g.fillRoundRect(70, 120, 30, 75, 20,
Shape s1 = new 20);
Ellipse2D.Double(0,0,100,100); g.fillRoundRect(100, 100, 90, 20,
Shape s2 = new 20, 20);
Ellipse2D.Double(60,0,100,100); g.fillRect(110, 120, 70, 50);
Area a1 = new Area(s1); g.fillOval(60, 210, 40, 40);
Area a2 = new Area(s2); g.fillOval(90, 210, 40, 40);
g2.translate(20,50); g.fillOval(120, 200, 50, 50);
g2.scale(1.5,1.5); g.setColor(Color.blue);
BasicStroke bsThickLine= new g.fillRoundRect(78, 125, 15, 25, 5,
BasicStroke(10.0f); 5);
a1.exclusiveOr(a2); g.setColor(Color.green);
g2.draw(a1); g.fillRoundRect(57, 155, 55, 50, 5,
} 5);
} g.setColor(Color.red);
Output : g.fillRoundRect(105, 104, 78, 10,
10, 10);
g.setColor(Color.yellow);
g.fillRoundRect(120, 122, 50, 85,
10, 10);
g.setColor(Color.black);
g.fillRoundRect(130, 130, 30, 40,
10, 10);
g.setColor(Color.white);
g.fillRoundRect(135, 135, 20, 20,
10, 10);

21. import java.awt.*; g.setColor(Color.white);

public class lokomotif extends g.fillRoundRect(55, 210, 120, 20,

java.applet.Applet { 10, 10);

public void paint(Graphics g) { g.setColor(Color.black);

g.fillRoundRect(50, 150, 130, 60, g.fillOval(65, 215, 30, 30);

20, 20); g.fillOval(95, 215, 30, 30);

g.fillRoundRect(50, 205, 130, 30, g.fillOval(125, 205, 40, 40);

20, 20); g.setColor(Color.red);


g.fillOval(70, 220, 20, 20); public void init() {
g.fillOval(100, 220, 20, 20); JPanel panel = new Panel2D();
g.fillOval(130, 210, 30, 30); getContentPane().add(panel);
g.setColor(Color.black); }
g.fillOval(75, 225, 10, 10); }
g.fillOval(105, 225, 10, 10); class Panel2D extends JPanel {
g.fillOval(135, 215, 20, 20); public Panel2D() {
} setPreferredSize(new
} Dimension(500, 400));
Output : setBackground(Color.white);
}
public void paintComponent(Graphics
g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
GeneralPath gp = new
22. import java.awt.*; GeneralPath();
import java.awt.event.*; //Mulai dari sudut depan-bawah
import javax.swing.*; mobil.
import java.awt.font.*; gp.moveTo(60,120);
import java.awt.geom.*; //bagian bodi bawah-depan
public class KelasGeneralPath extends gp.lineTo(80,120);
JApplet { //roda depan
public static void main(String s[]) { gp.quadTo(90,140,100,120);
JFrame frame = new JFrame(); //bagian bodi bawah-tengah
frame.setTitle("Kelas GeneraPath"); gp.lineTo(160,120);
frame.setDefaultCloseOperation(JFrame. //roda belakang
EXIT_ON_CLOSE); gp.quadTo(170,140,180,120);
JApplet applet = new //bagian bodi bawah-belakang
KelasGeneralPath(); gp.lineTo(200,120);
applet.init(); //bagian belakang mobil
frame.getContentPane().add(applet); gp.curveTo(195,100,200,80,160,80);
frame.pack(); //atap
frame.setVisible(true); gp.lineTo(110,80);
}
//kaca depan public void paintComponent(Graphics
gp.lineTo(90,100); g) {
//bagian hidung mobil Graphics2D g2d = (Graphics2D)g;
gp.lineTo(60,100); g2d.setStroke(new
//bagian depan mobil BasicStroke(3.0f));
gp.lineTo(60,120); Rectangle2D.Double rect = new
//menggambar mobil Rectangle2D.Double(180,200,100,60);
g2.draw(gp); AffineTransform rotating = new
} AffineTransform();
} rotating.setToRotation(Math.PI/6);
Output : g2d.setStroke(new BasicStroke
(3.0f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_BEVEL, 8.0f, new
float[] {50.0f,10.0f}, 4.0f));

23. import java.awt.*; g2d.draw(rotating.createTransformedSha


import javax.swing.*; pe(rect));
import java.awt.geom.*; }
public class BasicSample2D extends }
JPanel { Output :
public static void main(String[] args) {
JFrame f = new JFrame("Basic
Sample 2D");
BasicSample2D bs = new
BasicSample2D();
f.getContentPane().add("Center",bs);
f.pack();
f.setSize(new Dimension(300,300));
f.setVisible(true);
}
CONTOH SOAL 1 !
Tuliskan Paint Component-nya saja beserta logic, nomor 1 & 2!
1.
N M Tuliskan program untuk paint method dan method
A lainnya (jika diperlukan) untuk membuat gambar
A
“ujung panah” seperti di sebelah kiri.
20054350096
2 Untuk NPM yang berakhir dengan
0  Angka 1-2 : panah arah ke atas
0
5  Angka 3-5 : panah arah ke kanan
4
3  Angka 6-8 : panah arah ke bawah
7  Angka 9 dan 0 : arah ke kiri
8
0
0
3

2. Tuliskan coding untuk paint method untuk dua gambar object dibawah (jika perlu, uraikan cara
mengerjakannya). Ket: gambar A menggunakan objek Polygon, gambar B menggunakan
Ellipse2D (sama konsep dengan drawOval menggunakan Area).
a. Gunakan Polygon b. Gunakan Area

3. Gambarkan output dari coding dibawah (ditampilkan dengan akurat), size = 500*500!
import javax.swing.*;
import java.awt.*;
class UAS extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
int r=30, e=45, h=65, t=33;
for(int i=0;i<56;i++) {
t=i%4;
g.drawRect(r,e+t*h,43,56);
g.drawOval(183,135,65,65);
g.drawLine(73,e+t*h,216,166);
g.drawLine(73,e+56+t*h,216,166);
}
}
public static void main(String[] xyz) {
JFrame f = new JFrame();
f.getContentPane().add(new UAS());
f.setSize(500,500);
f.setVisible(true);
}
}
Jawab :
CONTOH SOAL 2 !
1. Tuliskan coding untuk paint method untuk dua gambar object dibawah dengan metode
geometris AREA (jika perlu, uraikan cara mengerjakannya). Ket: gambar A menggunakan objek
Rectangle2D (sama konsep dengan drawRect), gambar B menggunakan Ellipse2D (sama
konsep dengan drawOval).
a. . b.
CONTOH SOAL 3 !
Tuliskan Paint Component-nya saja beserta logic, nomor 1 & 2!
1. Terdapat angka pada lingkaran kiri atas, buatlah itu
3 digit terakhir NPM anda. Buatlah dengan metode
AREA.

2. Tuliskan coding untuk paint method untuk dua gambar object dibawah dengan metode
geometris AREA (jika perlu uraikan cara mengerjakannya). Ket: gambar A. Menggunakan objek
Rectangle2D (sama konsep dengan drawRect), B. baca keterangan dibawah. *note: perhatikan
dengan teliti
a. c b.

1
5 5

4 2

5 5
3

3. Gambarkan output dari coding dibawah (ditampilkan dengan akurat), size = 500*500)!
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class BasicSample2Dtwo extends JPanel {
public static void main(String[] args) {
JFrame f = new JFrame("Basic Sample 2D");
BasicSample2Dtwo bs = new BasicSample2Dtwo();
f.getContentPane().add("Center",bs);
f.pack();
f.setSize(new Dimension(300,300));
f.setVisible(true);
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
Shape s1 = new Ellipse2D.Double(0, 0, 100, 100);
Shape s2 = new Ellipse2D.Double(60, 0, 100, 100);
Shape s3 = new Ellipse2D.Double(0, 80, 100, 100);
Shape s4 = new Ellipse2D.Double(60, 80, 100, 100);
Area a1 = new Area(s1);
Area a2 = new Area(s2);
Area a3 = new Area(s3);
Area a4 = new Area(s4);
g2.setPaint(Color.black);
a1.subtract(a2);
a2.subtract(a4);
a4.subtract(a3);
a3.subtract(a1);
g2.draw(a1);
g2.draw(a2);
g2.draw(a4);
g2.draw(a3);
g2.drawString ("123",25,50);
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.red);
g2d.translate(100, 100);
g2d.drawRect(0, 0, 80, 50);
g2d.rotate(Math.PI/4.0);
g2d.setColor(Color.blue);
g2d.drawRect(0, 0, 100, 100);
g2d.translate(100, 100);
g2d.rotate(Math.PI/4.0);
g2d.setColor(Color.yellow);
g2d.drawRect(0, 0, 80, 50);
g2d.rotate(Math.PI/4.0);
g2d.fillRect(0, 0, 80, 50);
g2d.rotate(Math.PI/4.0);
g2d.scale(1.5,1.5);
g2d.scale(0.5,0.5);
g2d.drawRect(0, 0, 80, 50);
g2d.translate(-100,-100);
g2d.drawRect(-100, -100, 100, 100);
g2d.rotate(Math.PI/4.0);
g2d.drawRect(-100, -100, 100, 100);
}
}
Jawab :

You might also like