kooyee ‘s blog

          開源軟件, 眾人努力的結(jié)晶, 全人類的共同財(cái)富
          posts - 103, comments - 55, trackbacks - 0, articles - 66
             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          [Swing] 使用Matisse進(jìn)行swing編程

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

          使用eclipse的插件,首先設(shè)計(jì)form。然后可以把自己的code,后臺(tái)操作的代碼寫入到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去修改界面的外觀, 即使加入,也不會(huì)有什么效果。因?yàn)閙atisse的編輯器回重新生成代碼。但可以加入控制代碼。而且event響應(yīng)事件的代碼是在這些代碼之前生成. 對(duì)于起始要調(diào)用的代碼可以加到form的init()或constructor method中. 對(duì)于后臺(tái)要access到前臺(tái)界面的control時(shí),可以用setter/getter方法調(diào)用屬性為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 為后臺(tái)程序


          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);
              }


          }





          評(píng)論

          # re: [Swing] 使用Matisse進(jìn)行swing編程  回復(fù)  更多評(píng)論   

          2008-07-30 16:20 by 尻團(tuán)隊(duì)隊(duì)員
          毛主席萬(wàn)歲
          主站蜘蛛池模板: 烟台市| 阜平县| 宜君县| 莆田市| 临猗县| 宜宾县| 辉南县| 平南县| 阜城县| 长宁县| 容城县| 万年县| 岑巩县| 游戏| 阳曲县| 铁力市| 福贡县| 三台县| 惠州市| 芜湖县| 三明市| 岢岚县| 玉屏| 兴业县| 长泰县| 土默特右旗| 阿鲁科尔沁旗| 延长县| 牡丹江市| 襄汾县| 临高县| 海阳市| 师宗县| 乌兰察布市| 永德县| 台湾省| 苏州市| 鄂托克旗| 渝中区| 尼玛县| 黔西县|