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.