如何在矩形内写入文本

时间:2014-03-25 07:51:36

标签: java arrays swing jpanel paintcomponent

您好我正在创建一个java桌面应用程序,我正在绘制矩形。我想在矩形内写一些文字。

我怎样才能做到这一点?

这是我的代码:

class DrawPanel extends JPanel {

    private void doDrawing(Graphics g) {
        int a=90;
        int b=60;
        int c=10;
        int d=15;


        ArrayList<Graphics2D> g1 = new ArrayList<Graphics2D>();
        for(int i=0;i<=9;i++){

        Graphics2D g2d = (Graphics2D) g;

        g2d.setColor(new Color(212, 212, 212));
        g2d.drawRect(c, d, a, b);



        d+=65;
        }
    }

    @Override
    public void paintComponent(Graphics g) {

        super.paintComponent(g);
        doDrawing(g);
    }
}

1 个答案:

答案 0 :(得分:3)

使用您的Graphics2D对象并致电drawString(String str, int x, int y)。像

这样的东西
 g2d.drawRect(c, d, a, b);
 g2d.drawString("Hi", (a+c)/2, (b+d)/2);

请注意,Javadoc指定了

  

使用此图形上下文的当前字体和颜色绘制指定字符串给出的文本。最左边的字符的基线位于此图形上下文的坐标系中的位置(x,y)。

因此您需要考虑字体在屏幕上占用的空间。请使用FontMetrics