package graphtest; import javax.swing.*; import java.awt.*; import java.awt.font.FontRenderContext; import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; // клас Panel нащадок JPanel - public class Panel extends JPanel { @Override // переозначення методу малювання public void paintComponent (Graphics g) { super.paintComponent(g); g.setColor(Color.yellow); Graphics2D g2 = (Graphics2D) g; int w = getSize().width, h = getSize().height; FontRenderContext frc = g2.getFontRenderContext (); String s = "Тінь і світло"; Font f = new Font ("Serif", Font.BOLD, h/3); TextLayout tl = new TextLayout (s, f, frc); AffineTransform at = new AffineTransform(); at.setToTranslation (w/2-tl.getBounds().getWidth()/2, h/2); Shape sh = tl.getOutline (at); g2.fill(sh); AffineTransform atsh = new AffineTransform (1,0,1,-1,0,0); g2.transform (at); g2.transform (atsh); Font df = f.deriveFont (atsh); TextLayout dtl = new TextLayout (s, df, frc); Shape sh2 = dtl.getOutline(atsh); g.setColor(Color.black); g2.fill(sh2); } }