如何更改JTextArea内容的字体大小?

时间:2020-04-28 01:23:54

标签: java swing actionlistener jcombobox jtextarea

我正在尝试编写一种方法来更改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 );
      }
   }

我已将此动作侦听器实现到我的JComboBox,所以当我从ComboBox选择新的“大小”时,应根据选择增加或减小JTextArea的文本大小。我可以使用哪种方法或实现来解决此问题?

1 个答案:

答案 0 :(得分:0)

最简单的方法是根据现有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 ) );

请注意,在这种情况下,您需要将Integer值而不是String值添加到组合框中,因此无需解析所选的项目。

相关问题