import java.awt.*;
import javax.swing.*;public class PaintTest {
  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setSize(400, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new JPanel() {
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawString("S", 0, 0);
      }
    });
    frame.setVisible(true);
  }
}以上代码企图在JPanel的(0, 0)位置绘制一个String。但运行后什么也看不到。
此问题的根源在于drawString方法误以为是在整个窗口,也就是JFrame的坐标系中的(0, 0)点作画。
众所周知,窗口的(0, 0)点处于最上层的状态栏,而在状态栏上绘图是无法显示的。
那么问题就是:如何才能在画板(JPanel)的(0, 0)点上作画?或者:如何才能获取画板(JPanel)的坐标系?