SWT编程

{CSDN:CODE:
 
/*
 * 文件说明:工程启动文件,负责启动,不包含其他接口
 * 创 建 人:caoweidong c00229235
 * 创建时间:2014-1-2
 *
 * */
public class StartUP {
 
 public static MainFormCCMDataBuild MainformCCM ;
   
    public static void main(String[] args) throws Exception {
      
     MainformCCM = new MainFormCCMDataBuild();
     MainformCCM.run();
        
    }
 
}

/*
 * 文件说明:数据构造客户端主界面,提供窗体布局、状态栏和菜单栏等接口
 * 创 建 人:caoweidong c00229235
 * 创建时间:2014-1-2
 *
 * */
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.internal.image.*;


public class MainFormCCMDataBuild {
 
 /*公有变量*/
 public static DBConnect DBC;
    public static Text LogTxt;
    public static Shell shell;
    public static LogMessage Logmsg;
    public static int WindowsWidth = 800;
    public static int WindowsHigth = 600;
    public static String [] EnvList ={
     "jdbc:oracle:thin:@10.88.56.218:1521:sit11i",
     "ccm",
     "Holiday888"
    }; 
//    ccmDB00 =
//       (DESCRIPTION =
//         (ADDRESS = (PROTOCOL = TCP)(HOST = 10.85.206.46)(PORT = 1526))
//         (CONNECT_DATA =
//           (SERVER = DEDICATED)
//           (SERVICE_NAME = ccmDB00)
//         )
//       )
    /*私有变量*/
    private static final String[] LTCItem = { "S3 Wave1", "S3 Wave2", "S2[Old]"};
    private static final String[] ContractClearFlag = { "----", "Originally", "Gradually"};

   
    /*函数接口:run()*/
    public void run() throws Exception{
     Display display = new Display();
        DBC = new DBConnect();
        DBC.getConnection(EnvList);

        final Shell shell = new Shell(display);
        shell.setText("UniSTAR CCM Data Generator - V100R001C30");
        shell.setSize(WindowsWidth, WindowsHigth);
       
       
        Menu menuBar = new Menu(shell, SWT.BAR);
        MenuItem fileMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
        fileMenuHeader.setText("&File(F)");
    
        Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
        fileMenuHeader.setMenu(fileMenu);
        MenuItem fileSaveItem = new MenuItem(fileMenu, SWT.PUSH);
        fileSaveItem.setText("&Save");
        MenuItem fileEnglishItem = new MenuItem(fileMenu, SWT.RADIO);
        fileEnglishItem.setText("English");
        MenuItem fileGermanItem = new MenuItem(fileMenu, SWT.RADIO);
        fileGermanItem.setText("German");
        MenuItem fileExitItem = new MenuItem(fileMenu, SWT.PUSH);
        fileExitItem.setText("E&xit");
        MenuItem editMenuHeader = new MenuItem(menuBar, SWT.CASCADE);
        editMenuHeader.setText("&Edit(E)");
        Menu editMenu = new Menu(shell, SWT.DROP_DOWN);
        editMenuHeader.setMenu(editMenu);
        MenuItem editCopyItem = new MenuItem(editMenu, SWT.PUSH);
        editCopyItem.setText("&Copy");

        shell.setMenuBar(menuBar);
       
        ToolBar toolBar = new ToolBar(shell, SWT.FLAT | SWT.WRAP | SWT.RIGHT);
        ToolItem itemPush = new ToolItem(toolBar, SWT.PUSH);
        //itemPush.setText("PUSH item");
        Image icon = new Image(shell.getDisplay(), "icons/new.gif");
        itemPush.setImage(icon);
        toolBar.pack();
       
        final TabFolder WorkPlatformTab = new TabFolder(shell,SWT.TOP);
        WorkPlatformTab.setBounds(15, 35, 750, 350);
       
        TabItem ContractTab = new TabItem(WorkPlatformTab, SWT.NULL);
        ContractTab.setText("Contract Register");
       
        TabItem DBTab = new TabItem(WorkPlatformTab, SWT.NULL);
        DBTab.setText("DB Config");
       
        Composite ContractCom = new Composite(WorkPlatformTab,SWT.BORDER);
       
        //合同查询、设置
        Label ContractNOLbl = new Label(ContractCom,SWT.WRAP);
        ContractNOLbl.setBounds(5, 20, 100, 20);
        ContractNOLbl.setText("Contract NO.:");
        ContractTab.setControl(ContractCom);
       
        Text ContractNOTxt = new Text(ContractCom,SWT.WRAP|SWT.BORDER);
        ContractNOTxt.setBounds(105, 15, 140, 25);
        ContractNOTxt.setText("AUTOCWD131223A");
       
        Button SearchBtn = new Button(ContractCom,SWT.PUSH);
        SearchBtn.setBounds(250, 15, 100, 25);
        SearchBtn.setText("Search");
       
        Label LTCLbl = new Label(ContractCom,SWT.WRAP);
        LTCLbl.setBounds(400, 20, 60, 20);
        LTCLbl.setText("LTC Type :");
       
        Combo LTCCombo = new Combo(ContractCom, SWT.DROP_DOWN|SWT.READ_ONLY);
        LTCCombo.setItems(LTCItem);
        LTCCombo.setText(LTCItem[0]);
        LTCCombo.setBounds(470, 15, 80, 20);
       
        Label ClearFlagLbl = new Label(ContractCom,SWT.WRAP);
        ClearFlagLbl.setBounds(570, 20, 70, 20);
        ClearFlagLbl.setText("Clear Flag :");
       
        Combo ClearFlagCombo = new Combo(ContractCom, SWT.DROP_DOWN|SWT.READ_ONLY);
        ClearFlagCombo.setItems(ContractClearFlag);
        ClearFlagCombo.setText(ContractClearFlag[1]);
        ClearFlagCombo.setBounds(640, 15, 80, 20);

        //BOQ List区域
        Label BOQListLbl = new Label(ContractCom,SWT.WRAP);
        BOQListLbl.setBounds(5, 50, 70, 20);
        BOQListLbl.setText("BOQ List:");
       
        Composite BOQListCom = new Composite(ContractCom,SWT.BORDER|SWT.V_SCROLL|SWT.H_SCROLL);
        BOQListCom.setBounds(5, 70, 730, 160);
       
        //表格列头
        Button SelectAllCheckBox = new Button(BOQListCom,SWT.CHECK);
        SelectAllCheckBox.setBounds(0, 0, 15, 20);
       
       
        //创建行表
        Table BOQListHeadTab = new Table(BOQListCom,SWT.MULTI|SWT.BORDER);
        BOQListHeadTab.setBounds(0, 20, 705, 20);
   
        //BOQListHeadTab.setItemCount(5);
        //Label BOQNOLbl = new Label(BOQListCom,SWT.WRAP|SWT.CENTER);
        //BOQNOLbl.setBounds(15, 0, 190, 20);
        //BOQNOLbl.setText("BOQ NO.");
       
       
        Button PublishBtn = new Button(ContractCom,SWT.PUSH);
        PublishBtn.setBounds(250, 285, 100, 25);
        PublishBtn.setText("Publish");
        PublishBtn.addMouseListener(PublishBtnListener);
       
        Button DeleteContractBtn = new Button(ContractCom,SWT.PUSH);
        DeleteContractBtn.setBounds(400, 285, 100, 25);
        DeleteContractBtn.setText("Delete Contract");
        DeleteContractBtn.addMouseListener(DeleteContractBtnListener);
       
        //日志记录
        Logmsg  = new LogMessage(shell);
       
        shell.addShellListener(MainformListener);
        shell.addControlListener(MainformControlListener);
        shell.open();
       
       
        while (!shell.isDisposed()) {
             if (!display.readAndDispatch()) {
                  display.sleep();
             }
        }
        DBC.close();
        display.dispose();
    }
   
    /*监听响应接口*/
   
    //接口说明:主窗体响应
    ShellListener MainformListener = new ShellListener()
    {

  public void shellActivated(ShellEvent arg0) {
   // TODO 自动生成方法存根
   Logmsg.LogPrint("界面激活");
  }

  public void shellClosed(ShellEvent arg0) {
   // TODO 自动生成方法存根
   
  }

  public void shellDeactivated(ShellEvent arg0) {
   // TODO 自动生成方法存根
   Logmsg.LogPrint("界面未激活");
  }

  public void shellDeiconified(ShellEvent arg0) {
   // TODO 自动生成方法存根
   Logmsg.LogPrint("最小化后恢复界面显示");

   }

  public void shellIconified(ShellEvent arg0) {
   // TODO 自动生成方法存根
   Logmsg.LogPrint("最小化");
  
  }

 

     
    };
    //接口说明:窗体控制监听接口
   ControlListener MainformControlListener = new ControlListener()
   {

 public void controlMoved(ControlEvent arg0) {
  // TODO 自动生成方法存根
  Logmsg.LogPrint("shell move");
 }

 public void controlResized(ControlEvent arg0) {
  // TODO 自动生成方法存根
  Logmsg.LogPrint("shell resize");
//  MainFormCCMDataBuild.WindowsWidth = shell.getSize().x;
//  MainFormCCMDataBuild.WindowsHigth = shell.getSize().y;
  
  Logmsg.LogWidth = MainFormCCMDataBuild.WindowsWidth - 50;
  Logmsg.composite1.setBounds( 15, 415, Logmsg.LogWidth, Logmsg.LogHigth);
  Logmsg.composite1.layout();
 }
   
   };
    //接口说明:PublishBtn按钮监听响应接口,按钮的鼠标事件
    MouseListener PublishBtnListener = new MouseListener(){

  public void mouseDoubleClick(MouseEvent arg0) {
   // TODO 自动生成方法存根
  }

  public void mouseDown(MouseEvent arg0) {
   // TODO 自动生成方法存根
   
  }

  public void mouseUp(MouseEvent arg0) {
   // TODO 自动生成方法存根
   Logmsg.LogPrint("Click PublishBtn!");
   
  }
     
    };
   
    //接口说明:DeleteContractBtn按钮监听响应接口,按钮的鼠标事件
    MouseListener DeleteContractBtnListener = new MouseListener(){

  public void mouseDoubleClick(MouseEvent arg0) {
   // TODO 自动生成方法存根
  }

  public void mouseDown(MouseEvent arg0) {
   // TODO 自动生成方法存根
   
  }

  public void mouseUp(MouseEvent arg0) {
   // TODO 自动生成方法存根
   Logmsg.LogPrint("Click DeleteContractBtn!");
  }
     
    };

}

/*
 * 文件说明:日志模块,主要提供打印显示功能
 * 创 建 人:caoweidong c00229235
 * 创建时间:2014-1-2
 *
 * */
import java.text.SimpleDateFormat;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;


public class LogMessage {
 
 /*公有变量*/
 public Text LogTxt;
 public Composite composite1;
 public int LogWidth;
 public int LogHigth = 120;
 /*私有变量*/
 private static String[] OracleTNS = { "CCM BACK", "CCM_DB00"};
 private Combo DBEnvCombo;
 private final int gridUnitWidth = 100;
 private int gridNO;
 
 
 /*
  *接口说明:构造函数,初始化日志模块图形界面布局。
  *创 建 人:caoweidong c00229235
  *创建时间:2014-1-2
  * */
 public LogMessage(final Shell shell)
 {
  LogWidth = MainFormCCMDataBuild.WindowsWidth - 50;
  GridLayout gridLayout = new GridLayout();
  gridNO =(int)(LogWidth/100);
        //把子组件分成N列显示
        gridLayout.numColumns = gridNO;    
       
        composite1 = new Composite(shell, SWT.BORDER);
        composite1.setLayout(gridLayout);
        composite1.setBounds( 15, 415, LogWidth, LogHigth);
       
  Label LogLbl = new Label(composite1,SWT.WRAP);
        LogLbl.setText("Log Message:");
        GridData LogLblgridData = new GridData(GridData.BEGINNING);
        LogLblgridData.horizontalSpan = (gridNO - 3);
        LogLblgridData.widthHint  =  (gridNO - 3)*gridUnitWidth;
        LogLbl.setLayoutData(LogLblgridData);
       
        Label DBEnv = new Label(composite1,SWT.WRAP);
        DBEnv.setText("Database Env.:");
        GridData DBEnvgridData = new GridData(GridData.BEGINNING);
        DBEnvgridData.horizontalSpan = 1;
        DBEnvgridData.widthHint  =  gridUnitWidth;
        DBEnv.setLayoutData(DBEnvgridData);
       
        DBEnvCombo = new Combo(composite1, SWT.READ_ONLY);
        DBEnvCombo.setItems(OracleTNS);
        DBEnvCombo.setText(OracleTNS[0]);
        GridData DBEnvCombogridData = new GridData(GridData.BEGINNING);
        DBEnvCombogridData.horizontalSpan = 1;
        DBEnvCombogridData.widthHint  =  gridUnitWidth;
        DBEnvCombo.setLayoutData(DBEnvCombogridData);
       
  DBEnvCombo.addSelectionListener(DBEnvComboListener);
       
        Button DetectBtn = new Button(composite1,SWT.PUSH);
        DetectBtn.setText("Detect");
        GridData DetectBtnCombogridData = new GridData(GridData.BEGINNING);
        DetectBtnCombogridData.horizontalSpan = 1;
        DetectBtnCombogridData.widthHint  =  gridUnitWidth;
        DBEnvCombo.setLayoutData(DetectBtnCombogridData);
       
        DetectBtn.addMouseListener(DetectBtnListener);
       
       
        LogTxt = new Text(composite1,SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
        GridData LogTxtgridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        LogTxtgridData.horizontalSpan = gridNO;
        LogTxtgridData.widthHint  =  composite1.getSize().x - 40;
        LogTxtgridData.heightHint =  composite1.getSize().y - 50;
        LogTxt.setLayoutData(LogTxtgridData);
       
        composite1.layout();
       
 }
 /*
  *接口说明:重新布局
  *创 建 人:caoweidong c00229235
  *创建时间:2014-1-5
  * */
 public void ReLayout()
 {
  
 }
 /*
  *接口说明:清楚日志窗口所有信息
  *创 建 人:caoweidong c00229235
  *创建时间:2014-1-2
  * */
 public void LogClear()
 {
  LogTxt.clearSelection();
 }
 
 /*
  *接口说明:日志打印,输入参数为String类型对象
  *创 建 人:caoweidong c00229235
  *创建时间:2014-1-2
  * */
 public void LogPrint(String string)
 {
  if(LogTxt.getText()!= ""){
   LogTxt.append("\n");
  }
  SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss");
  String TimeString = time.format(new java.util.Date());
  LogTxt.insert("["+TimeString+"]"+": ");
  LogTxt.insert(string);
  
 }
 /*监听响应接口*/
 //接口说明:Database Env下拉框监听响应
 SelectionListener DBEnvComboListener = new SelectionListener()
 {
  public void widgetSelected(SelectionEvent arg0) {
   // TODO 自动生成方法存根
   MainFormCCMDataBuild.Logmsg.LogPrint("Connectting"+"["+DBEnvCombo.getText()+"]...");
   if(DBEnvCombo.getText() ==OracleTNS[1] )
   {
    MainFormCCMDataBuild.EnvList[0] = "jdbc:oracle:thin:@10.85.206.46:1526:ccmDB00";
    MainFormCCMDataBuild.EnvList[1] = "ccm";
    MainFormCCMDataBuild.EnvList[1] = "ccm2012";
   }
   else if(DBEnvCombo.getText() ==OracleTNS[0])   
   {
    MainFormCCMDataBuild.EnvList[0] = "jdbc:oracle:thin:@10.88.56.218:1521:sit11i";
    MainFormCCMDataBuild.EnvList[1] = "ccm";
    MainFormCCMDataBuild.EnvList[1] = "Holiday888";
   }
  }

  public void widgetDefaultSelected(SelectionEvent arg0) {
   // TODO 自动生成方法存根
   
  }
  
 };
 //接口说明:DetectBtn按钮监听响应
  MouseListener DetectBtnListener = new MouseListener(){

   public void mouseDoubleClick(MouseEvent arg0) {
    // TODO 自动生成方法存根
   }

   public void mouseDown(MouseEvent arg0) {
    // TODO 自动生成方法存根
    
   }

   public void mouseUp(MouseEvent arg0) {
    // TODO 自动生成方法存根
    String sql = null;
    MainFormCCMDataBuild.DBC.close();
    try {
     MainFormCCMDataBuild.DBC.getConnection(MainFormCCMDataBuild.EnvList);
    } catch (Exception e1) {
     // TODO 自动生成 catch 块
     e1.printStackTrace();
    }
    MainFormCCMDataBuild.Logmsg.LogPrint("Connecting Database"+"["+DBEnvCombo.getText()+"]"+"...");
    try {
//     if(OracleTNS[1] == DBEnvCombo.getText())
     {
      sql = "Select * FROM ccm.cc_contracts_t t Where t.contract_number = 'AUTOCWD131008A'";
     }
//     else   
     {
      sql = "Select * FROM ccm.cc_contracts_t t Where t.contract_number = 'AUTOCWD131223A'";
     }
     MainFormCCMDataBuild.DBC.QuerySQL(sql);
    } catch (Exception e) {
     // TODO 自动生成 catch 块
     e.printStackTrace();
    }
   }
      
   };


/*
 * 文件说明:数据库操作模块,提供数据库操作接口
 * 创 建 人:caoweidong c00229235
 * 创建时间:2014-1-2
 *
 * */

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement;
 
public class DBConnect { 
   
 /*私有变量*/
    private static Connection connection = null; 
    private final  String driver = "oracle.jdbc.driver.OracleDriver"; 
    private static Statement pstmt;
    private static ResultSet rst; 
   
    /*
  *接口说明:打开连接
  *创 建 人:caoweidong c00229235
  *创建时间:2014-1-3
  * */
    public  void getConnection(String []env) throws Exception 
    { 
        Class.forName(driver); 
        connection = DriverManager.getConnection(env[0],env[1],env[2]); 
        pstmt = connection.createStatement();
    } 
   
    public  ResultSet QuerySQL(String sql) throws Exception
    {
     rst = pstmt.executeQuery(sql);
     while(rst.next()){ 
      MainFormCCMDataBuild.Logmsg.LogPrint(rst.getString("contract_number"));
     }
     return rst;
    }
   
 /*
  *接口说明:关闭资源
  *创 建 人:caoweidong c00229235
  *创建时间:2014-1-3
  * */
    public void close()
    {
     if(rst != null) {               
             try { 
                 rst.close();            
             } catch (SQLException e) { 
                 e.printStackTrace(); 
             } 
         } 
      if(pstmt != null) {             
             try { 
                pstmt.close();         
            } catch (SQLException e) { 
                e.printStackTrace(); 
            } 
        }  
     if(connection != null) {             
              try { 
               connection.close();   
              } catch (SQLException e) { 
                  e.printStackTrace(); 
              } 
          }
    }

}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值