[ACCEPTED]-JTextArea default font very small in Windows-jtextarea
Instead of creating new font, it is better 4 to derive existing font, because this way you'll 3 save the font set by platform look and feel, and 2 it may also avoid problems with unicode 1 characters:
textArea.setFont(textArea.getFont().deriveFont(12f)); // will only change size to 12pt
Here's a solution that you can use to change 6 all JTextAreas at once instead of using 5 setFont() every time you add new text 4 area:
UIManager.getDefaults().put("TextArea.font", UIManager.getFont("TextField.font"));
Call this on start of your application, after 3 setting the Look and Feel.
Most L&Fs 2 use the same font for JTextArea and JTextField, it's 1 strange that Windows doesn't.
If you want a consistent look then use the 5 Nimbus or Metal look and feel instead of 4 the OS default. That will also allow you 3 to tweak any settings. Plus I personally 2 I think the Nimbus Look and Feel is much 1 smoother looking than the others.
You can use the JTextArea1.setFont(Font(String name, int style, int size))
method to specify the specific 2 type of font for a JTextArea component. As 1 an example
jTextArea1.setFont(new Font("Arial Black", Font.BOLD, 8));
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;
public class NewJFrame extends javax.swing.JFrame {
private JTextArea jTextArea1;
private JTextArea jTextArea2;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
NewJFrame inst = new NewJFrame();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}
public NewJFrame() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
jTextArea1 = new JTextArea();
getContentPane().add(jTextArea1, BorderLayout.NORTH);
jTextArea1.setText("This is a fox running slow");
jTextArea1.setFont(new Font("Arial Black", Font.BOLD, 8));
jTextArea1.setPreferredSize(new java.awt.Dimension(164, 114));
}
{
jTextArea2 = new JTextArea();
getContentPane().add(jTextArea2, BorderLayout.SOUTH);
jTextArea2.setText("This is a fox running slow");
jTextArea2.setFont(new Font("Book Antiqua", Font.ITALIC, 12));
jTextArea2.setPreferredSize(new java.awt.Dimension(384, 129));
}
pack();
setSize(400, 300);
} catch (Exception e) {
//add your error handling code here
e.printStackTrace();
}
}
}
I've just used TextField font in TextArea...
textArea = new JTextArea();
textArea.setFont(UIManager.getFont("TextField.font"));
0
Just do
textArea.setFont(new Font("Arial", Font.PLAIN, 16));
That changes all of the text inside 1 of the textarea to the same size font.
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.