淺析Swing項目的開發(fā)
關于Swing項目開發(fā)淺論
由于工作最近接手一個Swing項目,開發(fā)周期為一年,也算是不大不小的項目,而且項目由我來負責,(*^__^*) 嘻嘻……,我將我開發(fā)與管理的心得寫下,歡迎各位高手和前輩批評指正。
項目開發(fā)前的準備:
a:首先對工具的現(xiàn)在,eclispe,netbeans,jb等,對于eclipse我們需要裝一個插件swt-designer ,netbeans可以直接開發(fā),sun公司為我們做好了,需要說的是eclipse不支持動態(tài)布局,但是將netbeans下的項目import到 eclipse下是可以運行的。
b:對于Swing項目來說,沒有一個好的命名規(guī)范,特別是在多人參加開發(fā),那將是很槽糕的,Swing中有大量的組件用起來也很麻煩,這里我寫一個簡單例子,比如,JTextField txtFieldName, JTextArea txtBlog,等,這樣可以便于開發(fā)和交流。
c:對于工具的確定,netbeans做界面的開發(fā)比較好的選擇但是對于后臺的開發(fā)就顯弱勢了。在這里我選擇eclipse作后臺開發(fā),***將開發(fā)好的程序打jar文件***再導入netbeans中。
項目開發(fā)的相關設計
對于Swing做界面來說,并不是我們想象的那么容易,比如說我們在netbeans中畫好了所有的界面,在你打開界面的源文件時你會發(fā)現(xiàn)這個文件很龐大,可能有上萬行代碼或者更多,當你讀這個代碼時也許會感覺茫然的哦。甚至有砸電腦的想法,當維護的人員看到這樣的代碼,我們是可以想象當時的情景,還有,在Swing中也有很多復雜的事件,對我們開發(fā)人員的本身也是一種挑戰(zhàn),我們必須在上萬行代碼中翻來找去,有沒有什么好的辦法來解決了。其實是有的。
我們開發(fā)其實是面對組件開發(fā),然后將各個組件綜合在一起就成了我們所需要的軟件,當我們開發(fā)中肯定會遇到這樣或者那樣的
JPane ,JFrom JTable等,我們可以將一個個的jpane,jfrom jtable 重新組合中我們自己的組件以便復用,***我們再這些組件綜合在主要的Pane中下面的例子是我用netbeans開發(fā)的: 
- package singlepane;
 - import org.jdesktop.application.Action;
 - import org.jdesktop.application.ResourceMap;
 - import org.jdesktop.application.SingleFrameApplication;
 - import org.jdesktop.application.FrameView;
 - import org.jdesktop.application.TaskMonitor;
 - import java.awt.event.ActionEvent;
 - import java.awt.event.ActionListener;
 - import javax.swing.Timer;
 - import javax.swing.Icon;
 - import javax.swing.JDialog;
 - import javax.swing.JFrame;
 - import org.flybird.plat.SingleJpane;
 - /**
 - * The application's main frame.
 - */
 - public class SinglePaneView extends FrameView
 - {
 - public SinglePaneView(SingleFrameApplication app) {
 - super(app);
 - initComponents();
 - }
 - /** This method is called from within the constructor to
 - * initialize the form.
 - * WARNING: Do NOT modify this code. The content of this method is
 - * always regenerated by the Form Editor.
 - */
 - // <editor-fold defaultstate="collapsed" desc="Generated Code">
 - private void initComponents() {
 - mainPanel = new javax.swing.JPanel();
 - mainPabbedPane = new javax.swing.JTabbedPane();
 - this.singleJpane = new SingleJpane();
 - savePanel = new javax.swing.JPanel();
 - mainPanel.setName("mainPanel"); // NOI18N
 - mainPabbedPane.setName("mainPabbedPane"); // NOI18N
 - savePanel.setName("savePanel"); // NOI18N
 - org.jdesktop.layout.GroupLayout savePanelLayout = new org.jdesktop.layout.GroupLayout(savePanel);
 - savePanel.setLayout(savePanelLayout);
 - savePanelLayout.setHorizontalGroup(
 - savePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 - .add(0, 371, Short.MAX_VALUE)
 - );
 - savePanelLayout.setVerticalGroup(
 - savePanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 - .add(0, 273, Short.MAX_VALUE)
 - );
 - org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(singlepane.SinglePaneApp.class).getContext().getResourceMap(SinglePaneView.class);
 - mainPabbedPane.addTab(resourceMap.getString("savePanel.TabConstraints.tabTitle"), savePanel); // NOI18N
 - mainPabbedPane.addTab("single", this.singleJpane);
 - org.jdesktop.layout.GroupLayout mainPanelLayout = new org.jdesktop.layout.GroupLayout(mainPanel);
 - mainPanel.setLayout(mainPanelLayout);
 - mainPanelLayout.setHorizontalGroup(
 - mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 - .add(mainPanelLayout.createSequentialGroup()
 - .add(mainPabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 376, Short.MAX_VALUE)
 - .add(24, 24, 24))
 - );
 - mainPanelLayout.setVerticalGroup(
 - mainPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
 - .add(org.jdesktop.layout.GroupLayout.TRAILING, mainPanelLayout.createSequentialGroup()
 - .add(20, 20, 20)
 - .add(mainPabbedPane, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE))
 - );
 - setComponent(mainPanel);
 - }// </editor-fold>
 - // Variables declaration - do not modify
 - private javax.swing.JTabbedPane mainPabbedPane;
 - private javax.swing.JPanel mainPanel;
 - private javax.swing.JPanel savePanel;
 - // End of variables declaration
 - private SingleJpane singleJpane;
 - }
 
【編輯推薦】















 
 
 
 
 
 
 