importjava.awt.*;importjavax.swing.*;publicclassMainextendsJPanel{publicvoidpaint(Graphics g){
g.setFont(newFont("",0,100));FontMetrics fm =getFontMetrics(newFont("",0,100));String s ="message";int x =5;int y =5;for(int i =0; i < s.length(); i++){char c = s.charAt(i);int h = fm.getHeight();int w = fm.charWidth(c);
g.drawRect(x, y, w, h);
g.drawString(String.valueOf(c), x, y + h);
x = x + w;}}publicstaticvoidmain(String[] args){JFrame frame =newJFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(newMain());
frame.setSize(500,700);
frame.setVisible(true);}}
结果
上面的代码示例将产生以下结果。
Each character is displayed in a rectangle.
下面是另一个在矩形中显示字符串的示例。
importjava.awt.Color;importjava.awt.Graphics;importjavax.swing.JComponent;importjavax.swing.JFrame;classMyCanvasextendsJComponent{String s ="message";int x =45;int y =45;publicvoidpaint(Graphics g){
g.drawRect(10,10,200,200);
g.setColor(Color.red);
g.drawString(s, x, y);}}publicclassPanel{publicstaticvoidmain(String[] a){JFrame window =newJFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30,30,300,300);
window.getContentPane().add(newMyCanvas());
window.setVisible(true);}}