Javaプログラミング/Javaプログラミング関連情報

マルチフォントのテキストエディタを作る(7ページ目)

Javaでマルチフォントを扱うのは、意外に面倒です。ごく簡単なマルチフォント対応テキストエディタを作ってみましょう。

執筆者:掌田 津耶乃

リストの続き



  // <Color>メニュー用ActionListenerクラス
  class ColorMenuAction implements ActionListener {
    public void actionPerformed(ActionEvent ev) {
      String cmd = ev.getActionCommand();
      MutableAttributeSet attr = new SimpleAttributeSet();
      attr = setStyles(attr);
      Color c = null;
      try {
        Class cobj = ClassLoader.getSystemClassLoader().
            loadClass("java.awt.Color");
        Field field = cobj.getField(cmd);
        c = (Color)field.get(cobj);
      } catch (SecurityException e) {
        e.printStackTrace();
      } catch (IllegalArgumentException e) {
        e.printStackTrace();
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      } catch (IllegalAccessException e) {
        e.printStackTrace();
      } catch (NoSuchFieldException e) {
        e.printStackTrace();
      }
      StyleConstants.setForeground(attr,c);
      StyledDocument doc = textpane.getStyledDocument();
      doc.setCharacterAttributes(selstart,selend - selstart,attr,true);
      textpane.select(selstart,selend);
    }
  }
}

// JFileChooser用FileFilterクラス
class MyRTFFilter extends FileFilter {

  public boolean accept(File f) {
    if (f.isDirectory()) {
      return true;
    }
    String fname = f.getName();
    int n = fname.lastIndexOf(".");
    String ext = fname.substring(n);
    ext = ext.toLowerCase();
    if (ext != null) {
      if (ext.equals(".rtf")){
        return true;
      } else {
       return false;
      }
    }
    return false;
  }

  public String getDescription() {
    return "RTF";
  }
}
【編集部おすすめの購入サイト】
楽天市場で Java 関連の書籍を見るAmazon で Java 関連の書籍を見る
  • 前のページへ
  • 1
  • 5
  • 6
  • 7
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます