10

I have a drawString() method in my paintComponent method. Is there a way to make the text drawn by the drawString() bold? Also, is there a way to make the text bigger? I would like to avoid using JLabels, unless it is absolutely necessary.

3 Answers 3

21

According to documentation of drawString:

Draws the text given by the specified string, using this graphics context's current font and color. The baseline of the leftmost character is at position (x, y) in this graphics context's coordinate system

Indeed, Graphics class has the setFont(Font font) method available:

g.setFont(new Font("default", Font.BOLD, 16));
Sign up to request clarification or add additional context in comments.

3 Comments

You could use g.getFont().deriveFont(Font.BOLD) if all you wanted to do was change the font style of the current font...
@MadProgrammer Excellent, this is what I am looking for. You should have written your answer here. Will +1 without hesitation.
In case this is not clear to others, g is the canvas. If, for example, you're overriding public void paintComponent(Graphics canvas), then you'll want canvas.setFont(new Font("default", Font.BOLD, 16));.
1

You have to set the font before drawing the text.

g.setFont(font);

Comments

1

There are methods: setFont(Font) - Method in class java.awt.Component Sets the font of this component. setFont(Font) - Method in class java.awt.Container Sets the font of this container. setFont(Font) - Method in class java.awt.Graphics Sets this graphics context's font to the specified font.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.