我通常尽量不问我以前见过的问题,但这是不同的。我一直在尝试让我的自定义字体工作,但每当我尝试在方法中使用它时,我都会收到错误“无法对非静态方法进行静态引用”。我知道这意味着什么,但我不知道如何解决它。这是示例 -
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 类文件,这是我的 MainFrame 的片段 -
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。
编辑 - 在我的 MainFrame 中更改了我的主要方法,现在我收到错误 -
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);
我的 MainFrame 的第 107 行是
addFont.createFont();