Не следует путать deriveFont
метод, который ожидает аргумент стиля над тем, что expects a font size. Тот, который вы используете, использует аргумент стиля и не влияет на фактический размер шрифта. Вместо этого используйте
intro.setFont(intro.getFont().deriveFont(64f));
Также не добавляйте компоненты в метод paint
. Ваше приложение в реальном времени не отобразит JLabel
, пока не будет выполнена перекраска. Переопределение paint
(вернее, paintComponent
для Swing) предназначено для индивидуальной покраски, но добавочные компоненты не могут быть квалифицированы как таковые. Приложение будет иметь накладные расходы на добавляемый компонент каждый раз a repaint делается.
Пример:
public class LabelDemo {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Label Test");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
JLabel intro = new JLabel("משחק זיכרון");
frame.add(intro);
intro.setFont(intro.getFont().deriveFont(64f));
frame.pack();
frame.setVisible(true);
}
});
}
}
Это уже ответил: http://stackoverflow.com/questions/2715118/how-to-change-the -размер от шрифта-of-a-jlabel-to-take-the-maximum-size – Undefined
Я видел это! но все равно не полезны все методы, которые они описывают, я использую это! –
Не рекомендуется менять свойства вашего виджета в методе 'paint'. На этом этапе кода вы должны сделать так, чтобы объект рисовал по мере его настройки. Если вы хотите изменить свойства метки, вы должны сделать это где-то еще в своем коде. – Laf