在我的程序中,我已经创建了几个全局变量,但它不适用于加载的文件。
我加载一个 .ttf 文件并为其创建一个字体类型变量(或者它是一个常量?):
public class Project extends JPanel implements Runnable
{
[...] //global variables
public static void main(String[] args) throws IOException, FontFormatException
{
InputStream input = Project.class.getResourceAsStream("slkscre.ttf");
Font Silkscreen = Font.createFont(Font.TRUETYPE_FONT, input);
@Override
public void run()
{
[...]
}
}
问题是,如果我想做一些操作,它无法检测到SilkScreen
,这意味着(至少我认为)其中的变量 main
不是公开的。
无论如何,如果我这样做:
public class Project extends JPanel implements Runnable
{
InputStream input = Project.class.getResourceAsStream("slkscre.ttf");
Font Silkscreen = Font.createFont(Font.TRUETYPE_FONT, input);
public static void main(String[] args) throws IOException, FontFormatException
{
@Override
public void run()
{
[...]
}
}
我得到了错误unreported exception FontFormatException; must be caught of declared to be thrown
。我是Java编程的新手,所以我想问一下这是什么意思?
同样的情况发生在 ifinput
之前声明main
和Silkscreen
声明 inrun
的情况下,如果它们都声明在 中run
。
所以主要问题是如何公开输入和字体 - 或者至少在run
?