新聞中心
關(guān)于Swing項(xiàng)目開發(fā)淺論

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到揚(yáng)中網(wǎng)站設(shè)計(jì)與揚(yáng)中網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋揚(yáng)中地區(qū)。
由于工作最近接手一個(gè)Swing項(xiàng)目,開發(fā)周期為一年,也算是不大不小的項(xiàng)目,而且項(xiàng)目由我來(lái)負(fù)責(zé),(*^__^*) 嘻嘻……,我將我開發(fā)與管理的心得寫下,歡迎各位高手和前輩批評(píng)指正。
項(xiàng)目開發(fā)前的準(zhǔn)備:
a:首先對(duì)工具的現(xiàn)在,eclispe,netbeans,jb等,對(duì)于eclipse我們需要裝一個(gè)插件swt-designer ,netbeans可以直接開發(fā),sun公司為我們做好了,需要說(shuō)的是eclipse不支持動(dòng)態(tài)布局,但是將netbeans下的項(xiàng)目import到 eclipse下是可以運(yùn)行的。
b:對(duì)于Swing項(xiàng)目來(lái)說(shuō),沒(méi)有一個(gè)好的命名規(guī)范,特別是在多人參加開發(fā),那將是很槽糕的,Swing中有大量的組件用起來(lái)也很麻煩,這里我寫一個(gè)簡(jiǎn)單例子,比如,JTextField txtFieldName, JTextArea txtBlog,等,這樣可以便于開發(fā)和交流。
c:對(duì)于工具的確定,netbeans做界面的開發(fā)比較好的選擇但是對(duì)于后臺(tái)的開發(fā)就顯弱勢(shì)了。在這里我選擇eclipse作后臺(tái)開發(fā),***將開發(fā)好的程序打jar文件***再導(dǎo)入netbeans中。
項(xiàng)目開發(fā)的相關(guān)設(shè)計(jì)
對(duì)于Swing做界面來(lái)說(shuō),并不是我們想象的那么容易,比如說(shuō)我們?cè)趎etbeans中畫好了所有的界面,在你打開界面的源文件時(shí)你會(huì)發(fā)現(xiàn)這個(gè)文件很龐大,可能有上萬(wàn)行代碼或者更多,當(dāng)你讀這個(gè)代碼時(shí)也許會(huì)感覺茫然的哦。甚至有砸電腦的想法,當(dāng)維護(hù)的人員看到這樣的代碼,我們是可以想象當(dāng)時(shí)的情景,還有,在Swing中也有很多復(fù)雜的事件,對(duì)我們開發(fā)人員的本身也是一種挑戰(zhàn),我們必須在上萬(wàn)行代碼中翻來(lái)找去,有沒(méi)有什么好的辦法來(lái)解決了。其實(shí)是有的。
我們開發(fā)其實(shí)是面對(duì)組件開發(fā),然后將各個(gè)組件綜合在一起就成了我們所需要的軟件,當(dāng)我們開發(fā)中肯定會(huì)遇到這樣或者那樣的
JPane ,JFrom JTable等,我們可以將一個(gè)個(gè)的jpane,jfrom jtable 重新組合中我們自己的組件以便復(fù)用,***我們?cè)龠@些組件綜合在主要的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.
- */
- //
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);
- }//
- // 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;
- }
當(dāng)前文章:淺析Swing項(xiàng)目的開發(fā)
鏈接URL:http://fisionsoft.com.cn/article/cdgooco.html


咨詢
建站咨詢
