在Java SE中断开g.drawString中的行

ArM*_*MEd 4 java drawstring

这正是我想要做的:

Graphics2D g2 = (Graphics2D) g;
g2.setFont(new Font("Serif", Font.PLAIN, 5));
g2.setPaint(Color.black);
g2.drawString("Line 1\nLine 2", x, y);
Run Code Online (Sandbox Code Playgroud)

该行打印如下:

Line1Line2
Run Code Online (Sandbox Code Playgroud)

我希望这样:

Line1
Line2
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做drawString

以及如何为一条线做一个标签空间?

Rup*_*pok 5






       private void drawString(Graphics g, String text, int x, int y) {
                for (String line : text.split("\n"))
                    g.drawString(line, x, y += g.getFontMetrics().getHeight());
            }

       private void drawtabString(Graphics g, String text, int x, int y) {
            for (String line : text.split("\t"))
                g.drawString(line, x += g.getFontMetrics().getHeight(), y);
        }


            Graphics2D g2 = (Graphics2D) g;
            g2.setFont(new Font("Serif", Font.PLAIN, 5));
            g2.setPaint(Color.black);
            drawString(g2,"Line 1\nLine 2", 120, 120);
            drawtabString(g2,"Line 1\tLine 2", 130, 130);

 

  • private void drawtabString(Graphics g, String text, int x, int y) { for (String line : text.split("\t")) g.drawString(line, x += g.getFontMetrics().getHeight() , y); } (2认同)