Как изменить размер шрифта содержимого JTextArea? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь написать метод, который изменяет размер текста внутри JtextArea.

JTextArea editorPanel;
Font editorFont;

public void setSize( int size ) {
      editorPanel.setFont( new Font( editorFont.getName(), editorFont.getStyle(), size ) );
 }

У меня есть класс ActionListener для другого класса, который выглядит так;

class SizeListener implements ActionListener {

      String size;

      public void actionPerformed(ActionEvent e) {
         JComboBox cb = (JComboBox) e.getSource();
         size = (String) cb.getSelectedItem();
         int i = Integer.parseInt( size );
         displayFont = display.getEditorFont();
         display.setSize( i );
      }
   }

Я реализовал этот actionlistener для моего JComboBox, так что, когда я выбираю новый «размер» из моего ComboBox, размер текста JTextArea должен быть увеличен или уменьшен в зависимости от выбора. Какой метод или реализацию я могу использовать для решения этой проблемы?

1 Ответ

0 голосов
/ 28 апреля 2020

Самый простой способ - получить новый Font на основе существующего Font:

JComboBox cb = (JComboBox) e.getSource();
Integer itemSize = (Integer) cb.getSelectedItem();
float fontSize = itemSize.IntValue();
Font font = editorPanel.getFont();
editorPanel.setFont( font.deriveFont( fontSize ) );

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

...