私は通常、以前に見た質問をしないようにしていますが、これは異なります。カスタム フォントを機能させようとしてきましたが、メソッドで使用しようとすると、「非静的メソッドへの静的参照を作成できません」というエラーが表示されます。それが何を意味するかは知っていますが、それを修正する方法がわかりません。ここに例があります -
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.io.InputStream;
public class AddFont extends MainFrame{
public void createFont() throws Exception {
InputStream telegraficoFontAdd = AddFont.class.getResourceAsStream(FONT_PATH_TELEGRAFICO);
Font telegraficoFont = Font.createFont(Font.TRUETYPE_FONT,telegraficoFontAdd);
telegraficoFont = telegraficoFont.deriveFont(Font.PLAIN,20);
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(telegraficoFont);
}
}
これが私の AddFont クラス ファイルです。これが私のメインフレームのスニペットです。
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
AddFont addFont = new AddFont();
addFont.createFont();
} catch (Exception e) {
e.printStackTrace();
}
createGUI();
} //public void run() Closing
});
}
フォントを変更する必要があるボタンの長いリストがあるため、静的オブジェクトでメソッド クラスを使用する方法を見つけるにはどうすればよいでしょうか? または、私がしなければならない回避策はありますか?
いつものように、これに反対票を投じる場合は、その理由を教えてください。改善方法がわかります。うまくいけば、これは SSCCE と見なされます。
編集-メインフレームのメインメソッドを変更しましたが、エラーが発生しました-
java.io.IOException: Problem reading font data.
at java.awt.Font.createFont(Unknown Source)
at AddFont.createFont(AddFont.java:11)
at MainFrame$1.run(MainFrame.java:107)
(私の AddFont ファイルの 11 行目はこれです -
Font telegraficoFont = Font.createFont(Font.TRUETYPE_FONT,telegraficoFontAdd);
私のメインフレームの107行目は
addFont.createFont();