Я хочу знать, как центр фрейма title.I, упомянутого следующей ссылку How to center align the title in a JFrame?центра выравнивание титула в JFrame
, но мне нужно, чтобы центрировать заголовок без ввода расстояния.
Я хочу знать, как центр фрейма title.I, упомянутого следующей ссылку How to center align the title in a JFrame?центра выравнивание титула в JFrame
, но мне нужно, чтобы центрировать заголовок без ввода расстояния.
Подумайте о том, чтобы оставить заголовок левым оправданием ... но ... это приблизит вас к центру. Для изменяемых размеров кадров вам нужно переписать заголовок при изменении размера.
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");
Это единственный способ сделать это в Свинге. Обратите внимание, что добавление пробелов в центр названия окна повлияет на другие платформы. Например, для Windows 7 заголовок отображается в верхнем левом углу, однако в Windows 8 заголовок будет отображаться в верхнем центре. Если вы не хотите конкретно проверить, на какой ОС работает клиент, я предлагаю просто оставить заголовок как есть.
Это маловероятно, что вы можете повлиять на название позиции изначально поставленных границ кадра, о единственном другом решении у вас есть, чтобы обеспечить свой собственный внешний вид и оформление – MadProgrammer
кадра Почему подвергать пользователя к GUI, который разбивает шаблон * каждого * другого приложения. на их ПК? –