
- Example - Home
- Example - Environment
- Example - Strings
- Example - Arrays
- Example - Date & Time
- Example - Methods
- Example - Files
- Example - Directories
- Example - Exceptions
- Example - Data Structure
- Example - Collections
- Example - Networking
- Example - Threading
- Example - Applets
- Example - Simple GUI
- Example - JDBC
- Example - Regular Exp
- Example - Apache PDF Box
- Example - Apache POI PPT
- Example - Apache POI Excel
- Example - Apache POI Word
- Example - OpenCV
- Example - Apache Tika
- Example - iText
- Java Useful Resources
- Java - Quick Guide
- Java - Useful Resources
How to display string in a rectangle using Java
Problem Description
How to display string in a rectangle?
Solution
Following example demonstrates how to display each character in a rectangle by drawing a rectangle around each character using drawRect() method.
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); } }
Result
The above code sample will produce the following result.
Each character is displayed in a rectangle.
The following is an another sample example to display string 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); } }
The above code sample will produce the following result.
Each character is displayed in a rectangle.
java_simple_gui.htm
Advertisements