2013-07-24 49 views
0

在我的程序中,我已經創建了幾個全局變量,但它不適用於加載的文件。創建全局文件輸入

我打開一個文件名爲.ttf(自定義字體,很明顯),並創建一個字體類型的變量(或者是一個常數?)它:

public class FallenStar extends JPanel implements Runnable 
{ 

[...] //global variables 

public static void main(String[] args) throws IOException, FontFormatException 
{ 
    InputStream input = FallenStar.class.getResourceAsStream("slkscre.ttf"); 
    Font Silkscreen = Font.createFont(Font.TRUETYPE_FONT, input); 

    @Override 
    public void run() 
    { 
    [...] 
    } 
} 

的問題是,如果我喜歡做一些操作,它不能檢測SilkScreen,這意味着(至少我認爲)main中的變量不公開。

無論如何,如果我做這種方式:

public class FallenStar extends JPanel implements Runnable 
{ 

InputStream input = FallenStar.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編程新手,所以我想問一下這是什麼意思?

同樣的情況,無論是如果inputmain之前聲明和Silkscreen是,如果他們兩個人run聲明的run聲明。

所以主要的問題是如何使它的輸入和字體公開 - 或者至少可以在run

回答

1

問題是,如果我想進行一些操作,它無法檢測到SilkScreen,這意味着(至少我認爲)main中的變量不公開。

正確。局部變量在聲明的方法或塊之外不可見。

最直接的解決方案是在您的類中聲明變量並在main方法(或構造函數)中初始化它們。