How to calculate width of a String in pixels in Java? For e.g., I have a string say "Hello World!". What is its length in pixels, also considering its font family and size?
In short: the question depends on the framework you are using. For example, if you are using AWT, and have a Graphics object graphics, and a Font object font you can do the following:
FontMetrics metrics = graphics.getFontMetrics(font);
int width = metrics.stringWidth("Hello world!");
Check out this for more information.
You can try something like this
Graphics2D g2d = ...
Font font = ...
Rectangle2D r = font.getStringBounds("hello world!", g2d.getFontRenderContext());
System.out.println("(" + r.getWidth() + ", " + r.getHeight() + ")");
Refer this doc, may help you.
There are a number of ways to achieve what you want, based on what it is you want to achieve, for example...
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = img.createGraphics();
FontMetrics fm = g2d.getFontMetrics();
System.out.println(fm.stringWidth("This is a simple test"));
g2d.dispose();
But this only has relevence for the BufferedImage and it's Graphics context, it will not translate back to say, something like a screen or printer.
However, so long as you have a Graphics context, you can achieve the same result.
This example, obviously, uses the default font installed for the Graphics context, which you can change if you need to...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With