Я хочу изменить только первые два слова JLabel на другой шрифт, чем остальные JLabel. Я обнаружил, что могу создать JPanel и иметь два JLabels с разными шрифтами. Я не могу использовать этот способ, потому что у меня может быть только один JLabel (это потому, что у меня есть слушатель мыши, который меняет текст этого JLabel на основе входа или выхода из других JLabels, которые находятся в отдельном JPanel). Там в любом случае? Я попытался это (добавление стороны JLabel бок с другим JLabel):Изменить шрифт части JLabel?
JLabel Giraffesays = new JLabel("Giraffe says:");
Giraffesays.setFont(new Font("TimesRoman", Font.BOLD, 60));
status.setText(Giraffesays +"Hi!"); //status is a JLabel
, но это не сработало. Я также попытался сделать его строку:
String Giraffesays = "Giraffe says:
Giraffesays.setFont(new Font("TimesRoman", Font.BOLD, 60));
status.setText(Giraffesays +"Hi!"); //status is a JLabel
Но вы не можете изменить шрифт в строку ...
Я бы использовал два JLabels, добавленных бок о бок для самого простого решения. Вы указываете: «Я не могу использовать этот путь, потому что у меня может быть только один JLabel (это потому, что у меня есть слушатель мыши, который меняет текст этого JLabel на основе входа или выхода из других JLabels, которые находятся в отдельном JPanel) «' - это кажется ложной причиной. Можете ли вы объяснить, почему это мешает вам это сделать? –
Если вам нужно несколько форматирования текста, возможно, вы можете пойти для 'html string' для JLabel или' JTextPane' – Arvind
@HovercraftFullOfEels Мне пришлось бы менять обе строки каждого JFrame на главной панели в каждом прослушивателе мыши, и у меня много , Кроме того, поскольку мой JLabel использовал бесчисленное количество раз в течение всего кода, его изменение также означало бы изменение всего моего кода. Вместо того, чтобы делать это, я хочу иметь возможность просто установить текст с разными шрифтами внутри него. Спасибо –