2014-12-28 1 views
1

Я хочу знать, как центр фрейма title.I, упомянутого следующей ссылку How to center align the title in a JFrame?центра выравнивание титула в JFrame

, но мне нужно, чтобы центрировать заголовок без ввода расстояния.

+0

Это маловероятно, что вы можете повлиять на название позиции изначально поставленных границ кадра, о единственном другом решении у вас есть, чтобы обеспечить свой собственный внешний вид и оформление – MadProgrammer

+0

кадра Почему подвергать пользователя к GUI, который разбивает шаблон * каждого * другого приложения. на их ПК? –

ответ

1

Подумайте о том, чтобы оставить заголовок левым оправданием ... но ... это приблизит вас к центру. Для изменяемых размеров кадров вам нужно переписать заголовок при изменении размера.

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

Это единственный способ сделать это в Свинге. Обратите внимание, что добавление пробелов в центр названия окна повлияет на другие платформы. Например, для Windows 7 заголовок отображается в верхнем левом углу, однако в Windows 8 заголовок будет отображаться в верхнем центре. Если вы не хотите конкретно проверить, на какой ОС работает клиент, я предлагаю просто оставить заголовок как есть.