Hiển thị text trong rectangle trong Java



Miêu tả vấn đề

Cách hiển thị string trong một rectangle?

Giải pháp

Ví dụ sau minh họa cách hiển thị mỗi ký tự trong một rectangle bằng việc tạo một rectangle xung quanh mỗi ký tự bởi sử dụng phương thức drawRect() trong Java.

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);
   }
}

Kết quả

Code trên sẽ cho kết quả sau:

Each character is displayed in a rectangle. 

lap_trinh_gui_trong_java.jsp