2015-09-30 42 views
0

我正在使用接受來自用戶的值並將其存儲在變量(filePath)中的JFrame。我想在另一個類中使用這個值。我如何從JFrame中保存值並在另一個類中使用它?如何使用另一個類中的JFrame的值

的JFrame代碼:

JFileChooser fileChooser = new JFileChooser(); 
     fileChooser.setDialogTitle("Specify a file to save"); 

     int userSelection = fileChooser.showSaveDialog(this); 
     if (userSelection == JFileChooser.APPROVE_OPTION) { 
      File fileToSave = fileChooser.getSelectedFile(); 
      String filePath = fileToSave.getAbsolutePath(); 
     } 

類代碼:

String filename=""; 

我想要得到的文件路徑值轉換成文件名的字符串。

任何幫助?

+0

爲什麼不簡單地將價值傳遞給需要它的其他類? – MadProgrammer

+0

如何將價值傳遞給課堂?這是我的問題 –

+0

聽起來好像這個框架應該是一個選項窗格或模態對話框。請參閱[使用多個JFrames,良好/錯誤的實踐?](http://stackoverflow.com/q/9554636/418556)爲了更快地獲得更好的幫助,請發佈[MCVE]或[Short,Self Contained,Correct Example]( http://www.sscce.org/)。 –

回答

1

您可以在該類中創建一個靜態方法,用於保存該值。 例如。

class Get { 

    static String filename; 

    public static void getValue(String value) { 
     filename = value; 
    } 
} 

然後,一旦你從中獲取文件路徑。

String filePath = fileToSave.getAbsolutePath(); 

就在那之後,調用其他類的靜態方法。例如在我的情況下,該類是Get。

Get.getValue(filePath); 

OR Crete獲取字符串值的類的構造函數。

class Get { 

     String filename; 

     Get(String value) { 
      filename = value; 
     } 
    } 
} 

在創建類的對象時,將該值發送給構造函數。

Get g = new Get(filePath); 

甚至更​​簡單。在持有者類中引入一個靜態變量,從jframe類將其值設置爲filepath。

類獲取{

static String filename; 

}

然後,只需將文件名的值設置爲文件路徑如下。

Get.filename = filePath; 
+0

感謝@CodeRunner它的工作。 –

+0

@Maruthi我們只是在這裏幫助你。 – CodeRunner

0

有幾種方法可以將參數傳遞給另一個類。你沒有提到你問題的大部分內容,也許你可以寫更多的內容。

不過這裏有幾個方法:

比方說您得到這個字符串中的A類,並希望將它傳遞給B類

讓A類filename變量公共財產,比B類可以訪問該屬性是否引用了類A.這可能是最差的解決方案,因爲B必須引用類A,並且B必須等待輪到獲得該屬性。

更好的解決方案是實施Observer pattern其中A是主題,B是觀察者。如果您需要在從JFileChooser獲取字符串後立即傳遞字符串,這是最好的解決方案。

另一種解決方案是將字符串存儲在Singleton所有類都可以訪問的對象中。

在我看來,後兩種解決方案是首選。但這一切都取決於問題的背景和應用程序的複雜性(也許不需要將代碼與模式複雜化)。

相關問題