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

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

本文介绍了如何更改JTextArea内容的字体大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试编写一种方法来更改JtextArea内部的文本大小.

I'm trying to write a method that changes a text size inside of the JtextArea.

JTextArea editorPanel;
Font editorFont;

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

我在另一个类上有一个内部类ActionListener,看起来像;

I have an inner-class ActionListener on another class which look like;

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的文本大小.我可以使用哪种方法或实现来解决此问题?

I have implemented this actionlistener to my JComboBox, so that when I choose a new "size" from my ComboBox the text size of the JTextArea should be increased or decreased depending on the choice. Which method or implementation I can use to solve this problem?

推荐答案

最简单的方法是基于现有的Font派生新的Font:

The easiest way is to derive a new Font based on the existing 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值)添加到组合框中,因此无需解析所选的项目.

Note in this case you would add Integer values to the combo box, not String values so there is no need to parse the selected item.

这篇关于如何更改JTextArea内容的字体大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 12:27