kooyee ‘s blog

          開源軟件, 眾人努力的結晶, 全人類的共同財富
          posts - 103, comments - 55, trackbacks - 0, articles - 66
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          [Swing] 使用Matisse進行swing編程

          Posted on 2008-02-09 18:55 kooyee 閱讀(1680) 評論(1)  編輯  收藏 所屬分類: Swing/Applet

          使用eclipse的插件,首先設計form。然后可以把自己的code,后臺操作的代碼寫入到form的code中.

          但是要注意:

          /** 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.
               
          */

          提醒不能修改的地方是不能加入自己的code去修改界面的外觀, 即使加入,也不會有什么效果。因為matisse的編輯器回重新生成代碼。但可以加入控制代碼。而且event響應事件的代碼是在這些代碼之前生成. 對于起始要調用的代碼可以加到form的init()或constructor method中. 對于后臺要access到前臺界面的control時,可以用setter/getter方法調用屬性為private的controls

          例子

          /*
           * Test1.java
           *
           * Created on __DATE__, __TIME__
           
          */


          /**
           *
           * 
          @author  kooyee
           
          */

          public class Test1 extends javax.swing.JApplet {

              
          /** Initializes the applet Test1 */
              
          public void init() {
                  
          try {
                      
          //init the app class
                      testApp = new Test1App(this);
                      java.awt.EventQueue.invokeAndWait(
          new Runnable() {
                          
          public void run() {
                              initComponents();
                              testApp.init();
          //call init method in app class
                          }

                      }
          );
                  }
           catch (Exception ex) {
                      ex.printStackTrace();
                  }

              }


              
          /** This method is called from within the init() method to
               * initialize the form.
               * WARNING: Do NOT modify this code. The content of this method is
               * always regenerated by the Form Editor.
               
          */

              
          //GEN-BEGIN:initComponents
              
          // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
              private void initComponents() {
                  jLabel1 
          = new javax.swing.JLabel();
                  jTextField1 
          = new javax.swing.JTextField();
                  jButton1 
          = new javax.swing.JButton();

                  jLabel1.setText(
          "Modify Text");

                  jTextField1.setText(
          "jTextField1");

                  jButton1.setText(
          "Change");
                  jButton1.addMouseListener(
          new java.awt.event.MouseAdapter() {
                      
          public void mousePressed(java.awt.event.MouseEvent evt) {
                          jButton1MousePressed(evt);
                      }

                  }
          );

                  org.jdesktop.layout.GroupLayout layout 
          = new org.jdesktop.layout.GroupLayout(
                          getContentPane());
                  getContentPane().setLayout(layout);
                  layout
                          .setHorizontalGroup(layout
                                  .createParallelGroup(
                                          org.jdesktop.layout.GroupLayout.LEADING)
                                  .add(
                                          layout
                                                  .createSequentialGroup()
                                                  .add(
          303030)
                                                  .add(jLabel1)
                                                  .add(
          161616)
                                                  .add(
                                                          layout
                                                                  .createParallelGroup(
                                                                          org.jdesktop.layout.GroupLayout.LEADING)
                                                                  .add(jButton1)
                                                                  .add(
                                                                          jTextField1,
                                                                          org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                                                          
          269,
                                                                          org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                                                  .addContainerGap(
          28, Short.MAX_VALUE)));
                  layout
                          .setVerticalGroup(layout
                                  .createParallelGroup(
                                          org.jdesktop.layout.GroupLayout.LEADING)
                                  .add(
                                          layout
                                                  .createSequentialGroup()
                                                  .add(
          747474)
                                                  .add(
                                                          layout
                                                                  .createParallelGroup(
                                                                          org.jdesktop.layout.GroupLayout.BASELINE)
                                                                  .add(jLabel1)
                                                                  .add(
                                                                          jTextField1,
                                                                          org.jdesktop.layout.GroupLayout.PREFERRED_SIZE,
                                                                          org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,
                                                                          org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                                                  .add(
          454545).add(jButton1)
                                                  .addContainerGap(
          139, Short.MAX_VALUE)));
              }
          // </editor-fold>//GEN-END:initComponents

              
          //GEN-FIRST:event_jButton1MousePressed
              private void jButton1MousePressed(java.awt.event.MouseEvent evt) {
                  
          /*
                   * this code is my own code to add in here
                   
          */

                  testApp.modify();
          //call modify method of app class
              }
          //GEN-LAST:event_jButton1MousePressed

              
          //GEN-BEGIN:variables
              
          // Variables declaration - do not modify
              private javax.swing.JButton jButton1;

              
          private javax.swing.JLabel jLabel1;

              
          private javax.swing.JTextField jTextField1;

              
          // End of variables declaration//GEN-END:variables

              
          //Myself own app class
              private Test1App testApp;

              
          //Add setter/getter to access textbox, label and other controls
              public void setJTextField1(String text) {
                  jTextField1.setText(text);
              }


              
          public String getJTextField1() {
                  
          return jTextField1.getText();
              }


          }

          app 為后臺程序


          public class Test1App {
              
          private Test1 test1UI;
              
              
          //inject ui object to this class
              public Test1App(Test1 t1){
                  
          this.test1UI = t1;
              }

              
              
          public void init(){
                  test1UI.setJTextField1(
          "Run init()");
              }

              
              
          public void modify(){
                  String text 
          = test1UI.getJTextField1();
                  test1UI.setJTextField1(
          "Run modify() change from " + text);
              }


          }





          評論

          # re: [Swing] 使用Matisse進行swing編程  回復  更多評論   

          2008-07-30 16:20 by 尻團隊隊員
          毛主席萬歲
          主站蜘蛛池模板: 高邮市| 宁都县| 浠水县| 远安县| 宜黄县| 雅安市| 治多县| 韩城市| 彰化市| 成都市| 吴川市| 婺源县| 巢湖市| 七台河市| 读书| 浏阳市| 紫云| 桓台县| 蓝田县| 高碑店市| 都江堰市| 盐池县| 满城县| 南城县| 乐昌市| 共和县| 漳平市| 商河县| 许昌市| 菏泽市| 丰都县| 大余县| 泗阳县| 将乐县| 淮北市| 营口市| 额济纳旗| 曲周县| 塔城市| 齐河县| 普兰店市|