📄 starry.java
字号:
import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import java.awt.font.*;public class Starry extends Canvas { private Image img; public Starry() { setBackground(Color.white); img = getToolkit().getImage("starry.gif"); try { MediaTracker tracker = new MediaTracker(this); tracker.addImage(img, 0); tracker.waitForID(0); } catch (Exception e) {} } public void paint(Graphics g) { Graphics2D g2; g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); int w = getSize().width; int h = getSize().height; FontRenderContext frc = g2.getFontRenderContext(); Font f = new Font("Times",Font.BOLD,w/10); String s = new String("The Starry Night"); TextLayout tl = new TextLayout(s, f, frc); float sw = (float) tl.getBounds().getWidth(); AffineTransform transform = new AffineTransform(); transform.setToTranslation(w/2-sw/2,h/4); Shape shape = tl.getOutline(transform); Rectangle r = shape.getBounds(); g2.setColor(Color.blue); g2.draw(shape); g2.setClip(shape); g2.drawImage(img, r.x, r.y, r.width, r.height, this); } public static void main(String s[]) { WindowListener l = new WindowAdapter() { public void windowClosing(WindowEvent e) {System.exit(0);} public void windowClosed(WindowEvent e) {System.exit(0);} }; Frame f = new Frame("2D Text"); f.addWindowListener(l); f.add("Center", new Starry()); f.pack(); f.setSize(new Dimension(400, 300)); f.show(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -