如何在 JFrame 中居中对齐标题?

2022-01-24 00:00:00 titlebar java swing jframe

I have a JFrame with a Title. I want center align the title, so that it appears in the middle of the JFrame's title.

Thanks.

解决方案

Consider leaving the title left-justified...but...this will get you near the center. For resizable frames, you need to rewrite the title on resize.

JFrame t = new JFrame();
t.setSize(600,300);
t.setFont(new Font("System", Font.PLAIN, 14));
Font f = t.getFont();
FontMetrics fm = t.getFontMetrics(f);
int x = fm.stringWidth("Hello Center");
int y = fm.stringWidth(" ");
int z = t.getWidth()/2 - (x/2);
int w = z/y;
String pad ="";
//for (int i=0; i!=w; i++) pad +=" "; 
pad = String.format("%"+w+"s", pad);
t.setTitle(pad+"Hello Center");

相关文章