[英]How to make a JFrame (with timer) open another JFrame from another class
[英]How to use the value from a JFrame in another class
我正在使用一個JFrame,該JFrame接受來自用戶的值並將其存儲在變量(filePath)中。 我想在另一個類中使用此值。 我該如何保存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="";
我想將filePath值轉換為文件名字符串。
有什么幫助嗎?
您可以在要保存該值的類中創建一個靜態方法。 例如。
class Get {
static String filename;
public static void getValue(String value) {
filename = value;
}
}
然后,一旦您從中獲取文件路徑。
String filePath = fileToSave.getAbsolutePath();
之后,調用另一個類的靜態方法。 例如,在我的情況下,該類是Get。
Get.getValue(filePath);
或Crete獲取字符串值的類的構造函數。
class Get {
String filename;
Get(String value) {
filename = value;
}
}
}
在創建類的對象時,將該值發送到構造函數。
Get g = new Get(filePath);
甚至更簡單。 在jframe類中的holder類中引入一個靜態變量,將其值設置為filepath。
類Get {
static String filename;
}
然后只需將文件名的值設置為filePath,如下所示。
Get.filename = filePath;
有幾種方法可以將參數傳遞給另一個類。 您沒有對問題的背景有太多的講解,也許您可以多寫一點。
不過,這里有幾種方法:
假設您在A類中獲得了此字符串,並希望將其傳遞給B類。
將filename
變量設置為類A的公共屬性,則如果類B引用了類A,則類B可以訪問該屬性。這可能是最糟糕的解決方案,因為類B必須引用類A,而類B必須等待該屬性來使用。
更好的解決方案是實現觀察者模式 ,其中A為主題,B為觀察者。 如果您需要從JFileChooser獲得字符串后立即傳遞字符串,則這是最佳解決方案。
另一個解決方案是將字符串存儲在所有類都可以訪問的Singleton對象中。
我認為,后兩種解決方案是首選。 但這完全取決於問題的上下文和應用程序的復雜性(也許不需要使代碼與模式復雜化)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.