package graphtest; import javax.swing.*; import java.awt.*; // клас Panel нащадок JPanel - public class Panel extends JPanel { @Override // переозначення методу малювання public void paintComponent (Graphics g) { super.paintComponent(g); g.setColor(Color.yellow); Graphics2D g2 = (Graphics2D) g; // Встановити товщину лінії 3 пікселі g2.setStroke(new BasicStroke(3)); // Опис класу BasicStroke подано далі // Перший ряд фігур крім прапорця g2.drawLine(10, 10, 50, 10); g2.drawRect(10, 20, 40, 30); g2.draw3DRect(60, 20, 40, 30, true); g2.draw3DRect(110, 20, 40, 30, false); g2.drawOval(160, 20, 40, 30); g2.drawArc(210, 20, 40, 30, 45, 270); g2.drawRoundRect(260, 20, 40, 30, 24, 24); // Другий ряд фігур крім прапорця g2.fillRect(10, 70, 40, 30); g2.fill3DRect(60, 70, 40, 30, true); g2.fill3DRect(110, 70, 40, 30, false); g2.fillOval(160, 70, 40, 30); g2.fillArc(210, 70, 40, 30, 45, 270); g2.fillRoundRect(260, 70, 40, 30, 24, 24); // Прапорці і точки, відрізки і прямокутники int [] ax = {310, 410, 360, 410, 310}; int [] ay = { 20, 20, 35, 50, 50}; Polygon poly = new Polygon (ax, ay, 5); for (int j=0; j<5; j++) ay[j] += 50; g2.drawPolygon(poly); g2.fillPolygon(ax,ay,5); int x=350, y=35, w,h; if (poly.contains(x,y)) g.setColor(Color.green); else g.setColor(Color.red); g2.fillOval(x-3,y-3,6,6); x=380; y=35; if (poly.contains(x,y)) g.setColor(Color.green); else g.setColor(Color.red); g2.fillOval(x-3,y-3,6,6); x=410; y=15; w=9; h=40; if (poly.contains(x,y,w,h)) g.setColor(Color.green); else g.setColor(Color.red); g2.fillRect(x,y,w,h); x=315; y=25; w=9; h=20; if (poly.contains(x,y,w,h)) g.setColor(Color.green); else g.setColor(Color.red); g2.fillRect(x,y,w,h); x=390; y=15; w=9; h=40; if (poly.intersects(x,y,w,h)) g.setColor(Color.green); else g.setColor(Color.red); g2.fillRect(x,y,w,h); x=335; y=15; w=9; h=40; if (poly.intersects(x,y,w,h)) g.setColor(Color.green); else g.setColor(Color.red); g2.fillRect(x,y,w,h); System.out.println(poly.getBounds()); System.out.println(poly.getBounds2D()); // Буде таке виведення: // java.awt.Rectangle[x=310,y=20,width=100,height=30] // java.awt.Rectangle[x=310,y=20,width=100,height=30] g2.setColor(Color.orange); Dimension d = getSize(); // розміри вікна String s = "Проба пера"; Font f = new Font("Serif", Font.BOLD | Font.ITALIC, 24); g2.setFont(f); FontMetrics fm = getFontMetrics(f); g2.drawString(s, (d.width-fm.stringWidth(s))/2, d.height-30); } // Без використання Graphics2D /*public void paint (Graphics g) { super.paint(g); g.setColor(Color.yellow); g.drawLine(5, 45, 45, 45); }*/ }