中心在JFrame中对齐标题

时间:2014-12-28 11:05:04

标签: java swing jframe titlebar

我想知道如何集中JFrame标题。我参考了以下链接 How to center align the title in a JFrame?

但是我需要在没有间距的情况下居中标题。

2 个答案:

答案 0 :(得分:2)

考虑让标题保持左对齐......但是......这会让你靠近中心。对于可调整大小的帧,您需要在调整大小时重写标题。

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");

https://stackoverflow.com/a/9662974/3675925

答案 1 :(得分:1)

这是在Swing中做到这一点的唯一方法。请注意,添加空格以使窗口标题居中,这将影响其他平台。例如,对于Windows 7,标题显示在左上角,但在Windows 8上,标题将显示在顶部中心。除非您想要专门检查客户端运行的操作系统,否则我建议保留标题。