溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何淺析Swing項(xiàng)目的開發(fā)

發(fā)布時間:2021-12-18 20:17:22 來源:億速云 閱讀:150 作者:柒染 欄目:編程語言

如何淺析Swing項(xiàng)目的開發(fā),相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

由于工作最近接手一個Swing項(xiàng)目,開發(fā)周期為一年,也算是不大不小的項(xiàng)目,而且項(xiàng)目由我來負(fù)責(zé),(*^__^*) 嘻嘻……,我將我開發(fā)與管理的心得寫下,歡迎各位高手和前輩批評指正。
項(xiàng)目開發(fā)前的準(zhǔn)備:

a:首先對工具的現(xiàn)在,eclispe,netbeans,jb等,對于eclipse我們需要裝一個插件swt-designer ,netbeans可以直接開發(fā),sun公司為我們做好了,需要說的是eclipse不支持動態(tài)布局,但是將netbeans下的項(xiàng)目import到 eclipse下是可以運(yùn)行的。

b:對于Swing項(xiàng)目來說,沒有一個好的命名規(guī)范,特別是在多人參加開發(fā),那將是很槽糕的,Swing中有大量的組件用起來也很麻煩,這里我寫一個簡單例子,比如,JTextField txtFieldName, JTextArea txtBlog,等,這樣可以便于開發(fā)和交流。

c:對于工具的確定,netbeans做界面的開發(fā)比較好的選擇但是對于后臺的開發(fā)就顯弱勢了。在這里我選擇eclipse作后臺開發(fā),最好將開發(fā)好的程序打jar文件***再導(dǎo)入netbeans中。

項(xiàng)目開發(fā)的相關(guān)設(shè)計(jì)

對于Swing做界面來說,并不是我們想象的那么容易,比如說我們在netbeans中畫好了所有的界面,在你打開界面的源文件時你會發(fā)現(xiàn)這個文件很龐大,可能有上萬行代碼或者更多,當(dāng)你讀這個代碼時也許會感覺茫然的哦。甚至有砸電腦的想法,當(dāng)維護(hù)的人員看到這樣的代碼,我們是可以想象當(dāng)時的情景,還有,在Swing中也有很多復(fù)雜的事件,對我們開發(fā)人員的本身也是一種挑戰(zhàn),我們必須在上萬行代碼中翻來找去,有沒有什么好的辦法來解決了。其實(shí)是有的。

我們開發(fā)其實(shí)是面對組件開發(fā),然后將各個組件綜合在一起就成了我們所需要的軟件,當(dāng)我們開發(fā)中肯定會遇到這樣或者那樣的
JPane ,JFrom JTable等,我們可以將一個個的jpane,jfrom jtable 重新組合中我們自己的組件以便復(fù)用,我們再這些組件綜合在主要的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;   }

看完上述內(nèi)容,你們掌握如何淺析Swing項(xiàng)目的開發(fā)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI