我已經編寫了一個應用程序,該應用程序使用Swing作爲GUI,通過GUI接受文件,解析輸入並將其保存在DataList
中並將其發送到服務器。我很擔心我的程序的整個設計,我認爲這不是很好。我正在使用Netbeans來設計GUI,並且有一個類MainClass
,它啓動該GUI並具有對GUI的靜態引用。還有幾個做上述解析和數據發送的ExecClasses
。Java Swing設計指南
+----------------------+ | MainClass (static) | |----------------------| +------+ -DataList +-----+ | | | | static| +-+--------------+-----+ |static reference | | |reference | |new() | new() | | | | | | | | | +-+--------v----+ +--v-----------+--+ | | | | | SwingGUIClass | | ExecClasses | | | | | +--/\-----------+ +-----------------+ | Input file
這裏MainClass
的簡短概述:
public class MainClass {
private static MainClass mainClass;
private static ExecClass1 ex1;
private static ExecClass2 ex2;
private static ExecClass3 ex3;
public static void startExecClass2(String param){
ex2 = new ExecClass2(param);
}
我使用這些引用,以便SwingGUIClass
可以執行在ExecClass1
例如方法。我選擇了這種方法,因爲我有一個TextArea,需要從其中一個ExecClass中獲取數據並將其顯示在GUI中。因爲我無法修改ExecClass中的TextArea。
public class SwingGUIClass {
[...]
private void ButtonActionPerformed(java.awt.event.ActionEvent evt) {
Label.setText(MainClass.getList());
}
private void Button2ActionPerformed(java.awt.event.ActionEvent evt) {
MainClass.startExecClass2(Button2.getText());
}
我知道這是一個非常棒的設計,並沒有遵循一些良好的實踐指導, MVC。所以我的問題是:你會怎樣設計這個以及你能給我哪個一般指針?
它是一個廣泛的主題,與Swing沒有嚴格關係:-)而且有很多可能性 - 你可能想從f.i開始。在[馬丁福勒的關於表達邏輯的系列](http://martinfowler.com/eaaDev/OrganizingPresentations.html)順便說一句:請學習java命名約定,並堅持他們 – kleopatra
@kleopatra首先,感謝您的鏈接 - 我會看看進去。當然,我在這裏發佈的代碼並不是實際的代碼,爲了讓不熟悉我的程序的人更容易理解,或者你指的是其他的東西,我將類/變量(MainClas,ex2)重命名爲? – cete3
好像你缺少模型對象。不像Swing讓他們很容易處理。考慮使用支持綁定的Java FX。 – millimoose