用户的要求,
式样书上写要当TAB键移出文本框的时候执行某过程,
但用鼠镖光标移走的时候不执行.
故不能用FCOUSLOST,
TAB好象不触发KEYPRESSED事件,
我现在不知道如何是好了!

解决方案 »

  1.   

    你可以在JTEXT作FOCUSLOST事件响应,没必要作tab键的响应啊!
      

  2.   

    bobosji(波波司机):
    你的担心我都验证过啦,
    我想TAB好象不触发KEYPRESSED事件啊
      

  3.   

    不应该的,既然定义了VK_tab就能捕捉到,文档里也没有提到不能捕捉tab键,会不会你程序有问题?
      

  4.   

    to bobosji(波波司机):
    系统默认对tab有响应!
      

  5.   

    :)
    TAB肯定触发KEYPRESSED事件的……
    应该是你的代码有问题……
      

  6.   

    我当然验证过的……
    能响应TAB键的……
    是否你的代码写错了?是“VK_TAB”或者是9……
      

  7.   

    package fukoku.kouteikanri.KKG041;import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;
    import com.classtechnology.db.*;
    import com.classtechnology.pdm.*;
    import com.classtechnology.method.*;
    import login.*;
    import java.util.*;
    import java.text.*;
    import java.sql.ResultSet;public class CtFrmKKG041 extends JFrame {
        boolean bIsStart = false;//
        boolean bIsOne = true;//
        boolean bIsComm = false;//
        JPanel contentPane;
        CtMethodText ctxtSampleWeight = new CtMethodText();
        CtMethodText ctxtHaikiWeight = new CtMethodText();
        CtMethodButton ctDangaeStart = new CtMethodButton();
        CtMethodButton ctDangaeEnd = new CtMethodButton();
        Ct_pbDBP_TBL_Apply ctApply = new Ct_pbDBP_TBL_Apply();
        PDM_pbFrmClose pclsFrmClose = new PDM_pbFrmClose();
        CtMethodText ctxtGlobalCategory = new CtMethodText();
        CtMethodText ctxtLogInName = new CtMethodText();
        CtMethodText ctxtCurrentDate = new CtMethodText();
        CtMethodText ctxtSijisyoNO = new CtMethodText();
        CtMethodLabel clblLineNO = new CtMethodLabel();
        CtMethodText ctxtLineNO = new CtMethodText();
        CtMethodLabel clblSijisyoNO = new CtMethodLabel();
        Ct_tblTable ctTblANeriTounyu = new Ct_tblTable();
        JScrollPane jScrollPane_ctTblANeriTounyu = new JScrollPane(ctTblANeriTounyu);
        CtMethodLabel clblANeriTounyu = new CtMethodLabel();
        CtMethodText ctxtSagyoSijiNOZ = new CtMethodText();
        CtMethodText ctxtHaigouNOZ = new CtMethodText();
        CtMethodText ctxtSeikeiWeightZ = new CtMethodText();
        CtMethodLabel clblSagyoSijiNOZ = new CtMethodLabel();
        CtMethodLabel clblHaigouNOZ = new CtMethodLabel();
        CtMethodLabel clblSeikeiWeightZ = new CtMethodLabel();
        CtMethodLabel clblSampleWeight = new CtMethodLabel();
        CtMethodLabel clblHaikiWeight = new CtMethodLabel();
        CtMethodText ctxtSagyoSijiNOC = new CtMethodText();
        CtMethodText ctxtHaigouNOC = new CtMethodText();
        CtMethodText ctxtSeikeiWeightC = new CtMethodText();
        CtMethodText ctxtDangaeStartTime = new CtMethodText();
        CtMethodText ctxtDangaeEndTime = new CtMethodText();
        CtMethodLabel clblSagyoSijiNOC = new CtMethodLabel();
        CtMethodLabel clblHiagouNOC = new CtMethodLabel();
        CtMethodLabel clblSeikeiWeightC = new CtMethodLabel();
        CtMethodLabel clblDangaeStartTime = new CtMethodLabel();
        CtMethodLabel clblDangaeEndTime = new CtMethodLabel();
        TitledBorder tb_jpnlDangaeZeSagyo = new TitledBorder(new EtchedBorder(),"段替前作業", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.CENTER, new Font ("Dialog",0,12),Color.black);
        JPanel jpnlDangaeZeSagyo = new JPanel();
        TitledBorder tb_jpnlDangaeChuSagyo = new TitledBorder(new EtchedBorder(),"段替中作業", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.CENTER, new Font ("Dialog",0,12),Color.black);
        JPanel jpnlDangaeChuSagyo = new JPanel();
        CtMethodText ctxtWeightSum = new CtMethodText();
        CtMethodLabel clblWeightSum = new CtMethodLabel();
        CtMethodLabel clblKouteiNO = new CtMethodLabel();
        Ct_dfCode_DB ctKouteiNO = new Ct_dfCode_DB();
        JPanel jPanel1 = new JPanel();
        CtMethodText ctxtGCFlg = new CtMethodText();
        CtMethodText ctxtLoginCD_Hide = new CtMethodText();
        CtMethodText ctxtLoginDept_Hide = new CtMethodText();
        Ct_pbDBConnect ct_pbDBConnect1 = new Ct_pbDBConnect();
        /**フレームの構築*/
        public CtFrmKKG041() {
            enableEvents(AWTEvent.WINDOW_EVENT_MASK);
            try {
                jbInit();
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
        /**コンポーネントの初期化*/
        private void jbInit() throws Exception  {
            //setIconImage(Toolkit.getDefaultToolkit().createImage(Frame1.class.getResource("[Your Icon]")));
            contentPane = (JPanel) this.getContentPane();
            contentPane.setLayout(null);
        this.setSize(new Dimension(800, 580));
        this.setTitle("成形段替入力-KKG041-Ver1.00");
            this.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    this_keyPressed(e);
                }
            });
            this.addComponentListener(new java.awt.event.ComponentAdapter() {
                public void componentShown(ComponentEvent e) {
                    this_componentShown(e);
                }
            });
        ctxtSampleWeight.setBounds(new Rectangle(524,217,124,20));
            jPanel1.setLayout(null);
            ctxtGCFlg.setText("ctMethodText1");
            ctxtGCFlg.setBounds(new Rectangle(67, 48, 82, 21));
            ctxtLoginCD_Hide.setText("ctMethodText2");
            ctxtLoginCD_Hide.setBounds(new Rectangle(194, 56, 82, 21));
            ctxtLoginDept_Hide.setText("ctMethodText1");
            ctxtLoginDept_Hide.setBounds(new Rectangle(162, 156, 82, 21));
            ctDangaeStart.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ctDangaeStart_actionPerformed(e);
                }
            });
            ctDangaeEnd.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ctDangaeEnd_actionPerformed(e);
                }
            });
            ctApply.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ctApply_actionPerformed(e);
                }
            });
            ctTblANeriTounyu.setDBConnect(ct_pbDBConnect1);
            ct_pbDBConnect1.setDBInfo(new com.classtechnology.db.CtDBInfo("PDMDB", "PDMDEMO", "PDMDEMO", "jdbc:oracle:thin:@ct-java:1521:orcl", "oracle.jdbc.driver.OracleDriver", java.sql.Connection.TRANSACTION_READ_COMMITTED));
            ctxtCurrentDate.setHorizontalAlignment(SwingConstants.CENTER);
            ctxtLogInName.setHorizontalAlignment(SwingConstants.CENTER);
            ctxtGlobalCategory.setHorizontalAlignment(SwingConstants.CENTER);
            contentPane.add(ctxtSampleWeight, null);
        ctxtHaikiWeight.setBounds(new Rectangle(650,217,124,20));
        contentPane.add(ctxtHaikiWeight, null);
        ctDangaeStart.setBounds(new Rectangle(525,422,125,25));
        ctDangaeStart.setText("段替開始 (F11)");
        contentPane.add(ctDangaeStart, null);
        ctDangaeEnd.setBounds(new Rectangle(654,422,125,25));
        ctDangaeEnd.setText("段替終了 (F12)");
        contentPane.add(ctDangaeEnd, null);
        ctApply.setBounds(new Rectangle(576,518,100,25));
        ctApply.setText("適用 (F8)");
        contentPane.add(ctApply, null);
        pclsFrmClose.setBounds(new Rectangle(689,518,84,25));
        pclsFrmClose.setText("戻る");
        contentPane.add(pclsFrmClose, null);
        ctxtGlobalCategory.setBounds(new Rectangle(12,10,124,20));
        ctxtGlobalCategory.setBackground(Color.lightGray);
        ctxtGlobalCategory.setEnabled(false);
        ctxtGlobalCategory.setDisabledTextColor(Color.black);
        ctxtGlobalCategory.setEditable(false);
        contentPane.add(ctxtGlobalCategory, null);
        ctxtLogInName.setBounds(new Rectangle(528,10,124,20));
        ctxtLogInName.setBackground(Color.lightGray);
        ctxtLogInName.setEnabled(false);
        ctxtLogInName.setDisabledTextColor(Color.black);
        ctxtLogInName.setEditable(false);
        contentPane.add(ctxtLogInName, null);
        ctxtCurrentDate.setBounds(new Rectangle(657,10,126,20));
        ctxtCurrentDate.setBackground(Color.lightGray);
        ctxtCurrentDate.setEnabled(false);
        ctxtCurrentDate.setDisabledTextColor(Color.black);
        ctxtCurrentDate.setEditable(false);
        contentPane.add(ctxtCurrentDate, null);
        ctxtSijisyoNO.setBounds(new Rectangle(150,46,202,20));
        ctxtSijisyoNO.setBackground(Color.lightGray);
        ctxtSijisyoNO.setEnabled(false);
        ctxtSijisyoNO.setDisabledTextColor(Color.black);
        ctxtSijisyoNO.setEditable(false);
        contentPane.add(ctxtSijisyoNO, null);
        clblLineNO.setBounds(new Rectangle(35,73,116,23));
        clblLineNO.setText("ライン番号");
        contentPane.add(clblLineNO, null);
        ctxtLineNO.setBounds(new Rectangle(150,73,89,20));
        ctxtLineNO.setBackground(Color.lightGray);
        ctxtLineNO.setEnabled(false);
        ctxtLineNO.setDisabledTextColor(Color.black);
        ctxtLineNO.setEditable(false);
        contentPane.add(ctxtLineNO, null);
        clblSijisyoNO.setBounds(new Rectangle(35,46,104,20));
        clblSijisyoNO.setText("指示書番号");
        contentPane.add(clblSijisyoNO, null);
        jScrollPane_ctTblANeriTounyu.setBounds(new Rectangle(418,57,351,83));
        /*ctTblANeriTounyu.setSQLInfo(new com.classtechnology.db.CtTableInfo("DUMMY\nDUMMY\nDUMMY\nDUMMY", new java.lang.String[] {
        "配合番号","投入時間","残量","A練バッチ№"},
        "", "", "", "",
        new java.lang.Object[] {},
        new java.lang.Object[] {}));*/
        contentPane.add( jScrollPane_ctTblANeriTounyu, null);
        jScrollPane_ctTblANeriTounyu.getViewport().add( ctTblANeriTounyu );
        clblANeriTounyu.setBounds(new Rectangle(418,37,90,20));
        clblANeriTounyu.setText("A練投入状況");
        contentPane.add(clblANeriTounyu, null);
        ctxtSagyoSijiNOZ.setBounds(new Rectangle(17,217,187,20));
        ctxtSagyoSijiNOZ.setBackground(Color.lightGray);
        ctxtSagyoSijiNOZ.setEnabled(false);
        ctxtSagyoSijiNOZ.setDisabledTextColor(Color.black);
        ctxtSagyoSijiNOZ.setEditable(false);
        contentPane.add(ctxtSagyoSijiNOZ, null);
        ctxtHaigouNOZ.setBounds(new Rectangle(206,217,186,20));
        ctxtHaigouNOZ.setBackground(Color.lightGray);
        ctxtHaigouNOZ.setEnabled(false);
        ctxtHaigouNOZ.setDisabledTextColor(Color.black);
        ctxtHaigouNOZ.setEditable(false);
        contentPane.add(ctxtHaigouNOZ, null);
        ctxtSeikeiWeightZ.setBounds(new Rectangle(394,217,128,20));
        ctxtSeikeiWeightZ.setBackground(Color.lightGray);
        ctxtSeikeiWeightZ.setEnabled(false);
        ctxtSeikeiWeightZ.setDisabledTextColor(Color.black);
        ctxtSeikeiWeightZ.setEditable(false);
        contentPane.add(ctxtSeikeiWeightZ, null);
        clblSagyoSijiNOZ.setBounds(new Rectangle(70,193,85,20));
        clblSagyoSijiNOZ.setText("作業指示№");
        contentPane.add(clblSagyoSijiNOZ, null);
        clblHaigouNOZ.setBounds(new Rectangle(265,193,93,20));
        clblHaigouNOZ.setText("配合番号");
        contentPane.add(clblHaigouNOZ, null);
        clblSeikeiWeightZ.setBounds(new Rectangle(427,193,69,20));
        clblSeikeiWeightZ.setText("成形重量");
        contentPane.add(clblSeikeiWeightZ, null);
        clblSampleWeight.setBounds(new Rectangle(537,193,120,20));
        clblSampleWeight.setText("サンプル重量");
        contentPane.add(clblSampleWeight, null);
        clblHaikiWeight.setBounds(new Rectangle(683,194,78,19));
        clblHaikiWeight.setText("廃棄重量");
        contentPane.add(clblHaikiWeight, null);
        ctxtSagyoSijiNOC.setBounds(new Rectangle(19,355,187,20));
        ctxtSagyoSijiNOC.setBackground(Color.lightGray);
        ctxtSagyoSijiNOC.setEnabled(false);
        ctxtSagyoSijiNOC.setDisabledTextColor(Color.black);
        ctxtSagyoSijiNOC.setEditable(false);
        contentPane.add(ctxtSagyoSijiNOC, null);
        ctxtHaigouNOC.setBounds(new Rectangle(208,355,189,20));
        ctxtHaigouNOC.setBackground(Color.lightGray);
        ctxtHaigouNOC.setEnabled(false);
        ctxtHaigouNOC.setDisabledTextColor(Color.black);
        ctxtHaigouNOC.setEditable(false);
        contentPane.add(ctxtHaigouNOC, null);
        ctxtSeikeiWeightC.setBounds(new Rectangle(399,355,124,20));
        ctxtSeikeiWeightC.setBackground(Color.lightGray);
        ctxtSeikeiWeightC.setEnabled(false);
        ctxtSeikeiWeightC.setDisabledTextColor(Color.black);
        ctxtSeikeiWeightC.setEditable(false);
        contentPane.add(ctxtSeikeiWeightC, null);
        ctxtDangaeStartTime.setBounds(new Rectangle(525,355,124,20));
        contentPane.add(ctxtDangaeStartTime, null);
        ctxtDangaeEndTime.setBounds(new Rectangle(651,355,124,20));
        contentPane.add(ctxtDangaeEndTime, null);
        clblSagyoSijiNOC.setBounds(new Rectangle(75,332,84,20));
        clblSagyoSijiNOC.setText("作業指示№");
        contentPane.add(clblSagyoSijiNOC, null);
        clblHiagouNOC.setBounds(new Rectangle(262,332,73,20));
        clblHiagouNOC.setText("配合番号");
        contentPane.add(clblHiagouNOC, null);
        clblSeikeiWeightC.setBounds(new Rectangle(423,331,74,20));
        clblSeikeiWeightC.setText("成形重量");
        contentPane.add(clblSeikeiWeightC, null);
        clblDangaeStartTime.setBounds(new Rectangle(541,334,93,17));
        clblDangaeStartTime.setText("段替開始時間");
        contentPane.add(clblDangaeStartTime, null);
        clblDangaeEndTime.setBounds(new Rectangle(666,333,92,20));
        clblDangaeEndTime.setText("段替終了時間");
        contentPane.add(clblDangaeEndTime, null);
        jpnlDangaeZeSagyo.setBounds(new Rectangle(3,174,783,101));
        jpnlDangaeZeSagyo.setLayout(null);
        jpnlDangaeZeSagyo.setBorder(tb_jpnlDangaeZeSagyo);
        contentPane.add(jpnlDangaeZeSagyo, null);
        jpnlDangaeChuSagyo.setBounds(new Rectangle(3,317,782,91));
        jpnlDangaeChuSagyo.setLayout(null);
        jpnlDangaeChuSagyo.setBorder(tb_jpnlDangaeChuSagyo);
        contentPane.add(jpnlDangaeChuSagyo, null);
        ctxtWeightSum.setBounds(new Rectangle(650,242,124,20));
        ctxtWeightSum.setBackground(Color.lightGray);
        ctxtWeightSum.setEnabled(false);
        ctxtWeightSum.setDisabledTextColor(Color.black);
        ctxtWeightSum.setEditable(false);
        contentPane.add(ctxtWeightSum, null);
        clblWeightSum.setBounds(new Rectangle(586,243,59,20));
        clblWeightSum.setText("合計重量");
        contentPane.add(clblWeightSum, null);
        clblKouteiNO.setBounds(new Rectangle(35,101,84,25));
        clblKouteiNO.setText("工程番号");
        contentPane.add(clblKouteiNO, null);
        ctKouteiNO.setBounds(new Rectangle(150,100,147,20));
        ctKouteiNO.setBackground(Color.lightGray);
        ctKouteiNO.setEnabled(false);
        ctKouteiNO.setDisabledTextColor(Color.black);
        ctKouteiNO.setEditable(false);
        contentPane.add(ctKouteiNO, null);
            jPanel1.add(ctxtGCFlg, null);
            jPanel1.add(ctxtLoginCD_Hide, null);
            jPanel1.add(ctxtLoginDept_Hide, null);
            ctTblANeriTounyu.setSQLInfo(new com.classtechnology.db.CtTableInfo("A_NERI_DAT.HAIGOU_NO\nA_NERI_DAT.TOUNYU_TIME\n" +
                    "A_NERI_DAT.WEIGHT-A_NERI_DAT.RUIKEI_WEIGHT\nA_NERI_DAT.A_BATCH_NO",
                    new java.lang.String[] {"配合番号","投入時間","残量","A練バッチNo"},
                    "A_NERI_DAT","A_NERI_DAT.WEIGHT>A_NERI_DAT.RUIKEI_WEIGHT","",
    "PDMDB,PDMDEMO,PDMDEMO,jdbc:oracle:thin:@ct-java:1521:orcl,oracle.jdbc.driver.OracleDriver,java.sql.Connection.TRANSACTION_READ_COMMITTED",
    new java.lang.Object[] {},
    new java.lang.Object[] {}));
                    //ctTblANeriTounyu.setSQLInfo(new com.classtechnology.db.CtTableInfo();    }
        /**ウィンドウが閉じられたときに終了するようにオーバーライド*/
        protected void processWindowEvent(WindowEvent e) {
            super.processWindowEvent(e);
            if (e.getID() == WindowEvent.WINDOW_CLOSING) {
                System.exit(0);
            }
        }    void this_componentShown(ComponentEvent e) {
            ctxtCurrentDate.setText(ctutil.eco.CT_funGetSystemDatetime.funGetSystemDate(ct_pbDBConnect1));
            ctxtGlobalCategory.setText(CT_frmLogin.storageLoginInfo.getPackageNM());
            ctxtLogInName.setText(CT_frmLogin.storageLoginInfo.getPersonNM());
            ctxtGCFlg.setText(CT_frmLogin.storageLoginInfo.getPackageCD());
            ctxtLoginCD_Hide.setText(CT_frmLogin.storageLoginInfo.getPersonCD());
            ctxtLoginDept_Hide.setText(CT_frmLogin.storageLoginInfo.getDeptCD());
            kkg040DataShow();
            //ct_pbTBL_Select1.action();
        }    void kkg040DataShow() {
            String strSQL = new String();        CtDBResult myResult1;
            CtDBLine myDBLine1;
            if(bIsStart) {//成形作業開始時に「段替」ボタン押下にて遷移した場合
                /*strSQL = "select * from a_neri_dat where weight > ruikei_weight";
                myResult1 = ct_pbDBConnect1.executeQuery(strSQL);
                if(myResult1 != null)
                    myDBLine1 = myResult1.first();*/
                ctxtSampleWeight.setEditable(false);
                ctxtSampleWeight.setBackground(Color.gray);
                ctxtHaikiWeight.setEditable(false);
                ctxtHaikiWeight.setBackground(Color.gray);
                ctxtDangaeStartTime.setText("");
                ctxtDangaeEndTime.setText("");
                //jpnlDangaeZeSagyo.setVisible(false);        }
            if(bIsOne) {//1日の成形作業終了時に「作業終了」ボタン押下にて遷移した場合
                ctxtDangaeStartTime.setEditable(false);
                ctxtDangaeEndTime.setEditable(false);
                ctxtDangaeEndTime.setBackground(Color.gray);
                ctxtDangaeStartTime.setBackground(Color.gray);
                ctxtSampleWeight.setText("");
                ctxtHaikiWeight.setText("");
                //jpnlDangaeChuSagyo.setVisible(false);
            }        ctTblANeriTounyu.setColumnEditable2(1,false) ;
            ctTblANeriTounyu.setColumnEditable2(2,false) ;
            ctTblANeriTounyu.setColumnEditable2(3,false) ;
            ctTblANeriTounyu.setColumnEditable2(4,false) ;
            ctTblANeriTounyu.Populate();
        }    void ctDangaeStart_actionPerformed(ActionEvent e) {
            if(!bIsStart) return;
            String calSTART_JISSEKI_DATE = this.strNowTime();
            ctxtDangaeStartTime.setText(calSTART_JISSEKI_DATE);    }    String strNowTime() {
            Calendar calNow = Calendar.getInstance();
            int iYear = calNow.get(Calendar.YEAR);
            int iMonth = calNow.get(Calendar.MONTH) + 1;
            int iDay = calNow.get(Calendar.DAY_OF_MONTH);
            int iHour = calNow.get(Calendar.HOUR_OF_DAY);
            int iMinute = calNow.get(Calendar.MINUTE);
            int iSecond = calNow.get(Calendar.SECOND);
            long iNow = ((((long)(iYear * 100 + iMonth) * 100 + iDay) * 100 + iHour) * 100  + iMinute) * 100 + iSecond;
            return new Long(iNow).toString();
        }
        void ctDangaeEnd_actionPerformed(ActionEvent e) {
            if(!bIsStart) return;
            String calEND_JISSEKI_DATE = this.strNowTime();
            ctxtDangaeEndTime.setText(calEND_JISSEKI_DATE);
        }    void ctApply_actionPerformed(ActionEvent e) {
            //ctTblANeriTounyu.Populate();
            if(bIsStart) {
                if(!(ctxtDangaeStartTime.getText() != null && ctxtDangaeStartTime.getText().length() != 0))
                {JOptionPane.showMessageDialog(this,"please input data!");return;}
                if(!(ctxtDangaeEndTime.getText() != null && ctxtDangaeEndTime.getText().length() != 0))
                {JOptionPane.showMessageDialog(this,"please input data!");return;}
            }
            if(bIsOne) {
                if(!(ctxtSampleWeight.getText()!=null && ctxtSampleWeight.getText().length()!=0)) {
                    JOptionPane.showMessageDialog(this,"Please input data!");
                    return;
                }
                if(!(ctxtHaikiWeight.getText()!=null && ctxtHaikiWeight.getText().length()!=0)) {
                    JOptionPane.showMessageDialog(this,"Pleas input data!");
                }
            }
            if(bIsComm) {
                if(!(ctxtDangaeStartTime.getText() != null && ctxtDangaeStartTime.getText().length() != 0))
                {JOptionPane.showMessageDialog(this,"please input data!");return;}
                if(!(ctxtDangaeEndTime.getText() != null && ctxtDangaeEndTime.getText().length() != 0))
                {JOptionPane.showMessageDialog(this,"please input data!");return;}
                if(!(ctxtSampleWeight.getText()!=null && ctxtSampleWeight.getText().length()!=0)) {
                    JOptionPane.showMessageDialog(this,"Please input data!");
                    return;
                }
                if(!(ctxtHaikiWeight.getText()!=null && ctxtHaikiWeight.getText().length()!=0)) {
                    JOptionPane.showMessageDialog(this,"Pleas input data!");
                }
            }
            Integer interTmp1;
            Integer interTmp2;
            try {
                interTmp1 = new Integer(ctxtSampleWeight.getText());
                interTmp2 = new Integer(ctxtHaikiWeight.getText());
            }
            catch(NumberFormatException event) {
                JOptionPane.showMessageDialog(this,"please input number!");
                return;
            }
            String strSQL = "SELECT A_NERI_DAT.WEIGHT-A_NERI_DAT.RUIKEI_WEIGHT FROM A_NERI_DAT WHERE A_NERI_DAT.WEIGHT>A_NERI_DAT.RUIKEI_WEIGHT";
            CtDBResult ctTmp1 = ct_pbDBConnect1.executeQuery(strSQL) ;
            CtDBLine ctTmpL1;
            if(ctTmp1!=null) {
                ctTmpL1 = ctTmp1.first();
                strSQL = ctTmpL1.line[0];
            }
            Integer interTmp3;
            try {            interTmp3 = new Integer(strSQL);
            }
            catch(NumberFormatException event) {
                JOptionPane.showMessageDialog(this,"the database is not number record!");
                return;
            }
            if((interTmp1.intValue()+interTmp2.intValue())>interTmp3.intValue()) {
                if(JOptionPane.NO_OPTION == JOptionPane.showConfirmDialog(this,"投入量を上回りますが 宜しいですか?","",JOptionPane.YES_NO_OPTION))
                return ;
            }
            //strSQL = "UPDATE
        }    void this_keyPressed(KeyEvent e) {
            switch(e.getKeyCode())
            {
            case KeyEvent.VK_F11 :
                ctDangaeStart_actionPerformed(new ActionEvent(this,KeyEvent.VK_F11,""));
            case KeyEvent.VK_F12 :
                ctDangaeEnd_actionPerformed(new ActionEvent(this,KeyEvent.VK_F12,""));
            case KeyEvent.VK_F8 :
                ctApply_actionPerformed(new ActionEvent(this,KeyEvent.VK_F8,""));
            case KeyEvent.VK_TAB :
                System.out.println("this is tab!");//there must some action
            default :
                ;//null default
            }    }
    }
      

  8.   

    程序还没做完,可是我现在编译执行无问题.
    按F11和F12,F8都有响应,
    但TAB没有,
    其实我的键盘很好天天用TAB,刚还用过,但
    事实上就没有调用KEYPRESSED,我DEBUG过.
    简单化一点:
    请看核心的代码:
    this.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    this_keyPressed(e);
                }
            });void this_keyPressed(KeyEvent e) {
            switch(e.getKeyCode())
            {
            case KeyEvent.VK_F11 :
                ctDangaeStart_actionPerformed(new ActionEvent(this,KeyEvent.VK_F11,""));
            case KeyEvent.VK_F12 :
                ctDangaeEnd_actionPerformed(new ActionEvent(this,KeyEvent.VK_F12,""));
            case KeyEvent.VK_F8 :
                ctApply_actionPerformed(new ActionEvent(this,KeyEvent.VK_F8,""));
            case KeyEvent.VK_TAB :
                System.out.println("this is tab!");//there must some action
            default :
                ;//null default
            }    }谢谢各位,
    该软件包不允许用FOCUSLOST(这个事件可以捕捉TAB的).
    所以我的程序不好通过了.
    再次谢谢各位!
      

  9.   

    倒,给小日本写的?不用全部贴上来吧?看你最后那部分(没全部看,只看了最后),应该没问题啊(唯一的问题是CASE以后居然没BREAK……)你按下F11有什么反应啊?
      

  10.   

    有北京的朋友吗,
    我在北京,
    妹儿是[email protected]
    欢迎大家来玩.
      

  11.   

    你的程序按了TAB键是在控制台输出啊,你确定控制台没输出?
    或者你把标准输出重定向了……
    TAB键按下肯定有响应的……
      

  12.   

    case后当然不用break啦,
    你看完ctDangaeStart_actionPerformed就明白了.
    当然这样一来就不规范了.按F11后ctxtDangaeStartTime.setText(calSTART_JISSEKI_DATE);执行.
    时间被改变了啊.
      

  13.   

    ender兄谢谢你,
    我在控制台输出就是因为不调用过程,
    才打印在控制台来看的,
    结果还是不行,根本没有.
    DEBUG发现就根本没调用啊!
      

  14.   

    我用的是JB4,
    JDK的版本是1.3.0_C
    谢谢各位大侠.
      

  15.   

    我认为可能是你的监听对象不对……
    你的按键事件并非发生在JFrame的,而是发生在里面的对象上的,而这些对象默认都有对TAB键的处理,所以这个消息就被消化掉了,传不到JFrame来……而你其他F11等键由于没有默认的处理,所以就传递给JFrame来处理……
    你试试在一个TEXTAREA或BUTTON监听,肯定能监听TAB键的……我对JAVA的图形编程不是很熟悉,姑妄言之……
      

  16.   

    其实你对TEXTAREA作FocusListener的监听,重写public void focusLost(FocusEvent e)方法就可以了!
    何必和tab键较劲!
      

  17.   

    这些对象默认都有对TAB键的处理,所以这个消息就被消化掉了?
    我想很有可能,JTEXT什么的也检测不到TAB键.现在没有一点头绪了.
      

  18.   

    TO:hjfgcx(老鼠)
    这样你就只能针对需要捕捉这个按键的对象来监听了……
      

  19.   

    你试试用public class CtFrmKKG041 extends JFrame implement KeyListener{然后在keyPressed(KeyEvent e){}里判断按键和对象