Javaexamples-gui-rectangle

提供:Dev Guides
移動先:案内検索

Javaの例-テキストを長方形で表示する

問題の説明

文字列を長方形に表示する方法は?

溶液

次の例は、drawRect()メソッドを使用して各文字の周囲に長方形を描画することにより、長方形内の各文字を表示する方法を示しています。

import java.awt.*;
import javax.swing.*;

public class Main extends JPanel {
   public void paint(Graphics g) {
      g.setFont(new Font("",0,100));
      FontMetrics fm = getFontMetrics(new Font("",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;
      }
   }
   public static void main(String[] args) {
      JFrame frame = new JFrame();
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setContentPane(new Main());
      frame.setSize(500, 700);
      frame.setVisible(true);
   }
}

結果

上記のコードサンプルは、次の結果を生成します。

Each character is displayed in a rectangle.

以下は、文字列を長方形で表示する別のサンプル例です。

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;

class MyCanvas extends JComponent {
   String s = "message";
   int x = 45;
   int y = 45;
   public void paint(Graphics g) {
      g.drawRect (10, 10, 200, 200);
      g.setColor(Color.red);
      g.drawString(s, x, y);
   }
}
public class Panel {
   public static void main(String[] a) {
      JFrame window = new JFrame();
      window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      window.setBounds(30, 30, 300, 300);
      window.getContentPane().add(new MyCanvas());
      window.setVisible(true);
   }
}

上記のコードサンプルは、次の結果を生成します。

Each character is displayed in a rectangle.