菜鸟又来了各位还好啊看看一个简单的但我想了一天的问题. 用户的要求,式样书上写要当TAB键移出文本框的时候执行某过程,但用鼠镖光标移走的时候不执行.故不能用FCOUSLOST,TAB好象不触发KEYPRESSED事件,我现在不知道如何是好了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以在JTEXT作FOCUSLOST事件响应,没必要作tab键的响应啊! bobosji(波波司机):你的担心我都验证过啦,我想TAB好象不触发KEYPRESSED事件啊 不应该的,既然定义了VK_tab就能捕捉到,文档里也没有提到不能捕捉tab键,会不会你程序有问题? to bobosji(波波司机):系统默认对tab有响应! :)TAB肯定触发KEYPRESSED事件的……应该是你的代码有问题…… 我当然验证过的……能响应TAB键的……是否你的代码写错了?是“VK_TAB”或者是9…… 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 } }} 程序还没做完,可是我现在编译执行无问题.按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的).所以我的程序不好通过了.再次谢谢各位! 倒,给小日本写的?不用全部贴上来吧?看你最后那部分(没全部看,只看了最后),应该没问题啊(唯一的问题是CASE以后居然没BREAK……)你按下F11有什么反应啊? 有北京的朋友吗,我在北京,妹儿是[email protected]欢迎大家来玩. 你的程序按了TAB键是在控制台输出啊,你确定控制台没输出?或者你把标准输出重定向了……TAB键按下肯定有响应的…… case后当然不用break啦,你看完ctDangaeStart_actionPerformed就明白了.当然这样一来就不规范了.按F11后ctxtDangaeStartTime.setText(calSTART_JISSEKI_DATE);执行.时间被改变了啊. ender兄谢谢你,我在控制台输出就是因为不调用过程,才打印在控制台来看的,结果还是不行,根本没有.DEBUG发现就根本没调用啊! 我用的是JB4,JDK的版本是1.3.0_C谢谢各位大侠. 我认为可能是你的监听对象不对……你的按键事件并非发生在JFrame的,而是发生在里面的对象上的,而这些对象默认都有对TAB键的处理,所以这个消息就被消化掉了,传不到JFrame来……而你其他F11等键由于没有默认的处理,所以就传递给JFrame来处理……你试试在一个TEXTAREA或BUTTON监听,肯定能监听TAB键的……我对JAVA的图形编程不是很熟悉,姑妄言之…… 其实你对TEXTAREA作FocusListener的监听,重写public void focusLost(FocusEvent e)方法就可以了!何必和tab键较劲! 这些对象默认都有对TAB键的处理,所以这个消息就被消化掉了?我想很有可能,JTEXT什么的也检测不到TAB键.现在没有一点头绪了. TO:hjfgcx(老鼠)这样你就只能针对需要捕捉这个按键的对象来监听了…… 你试试用public class CtFrmKKG041 extends JFrame implement KeyListener{然后在keyPressed(KeyEvent e){}里判断按键和对象 关于Class<? super T> 谁有相关于ant方面的电子书籍和相关例子方法学习 jdk1.6.0_10安装后不能使用!!!!!!!!!!!!!本人是JAVA初学者 各位看官帮我写段代码吧 Stack中的peek()方法的返回类型是什么啊?(JDK1.5) 急:如何保存帐号和密码 java中如何禁用窗口右上角的关闭按钮 关于java泛型的问题 求问诸位大虾及英语高手 关于的js问题(高分相送) final object 只能在constructor 中初始化吗? 一个简单问题,给大家送分
你的担心我都验证过啦,
我想TAB好象不触发KEYPRESSED事件啊
系统默认对tab有响应!
TAB肯定触发KEYPRESSED事件的……
应该是你的代码有问题……
能响应TAB键的……
是否你的代码写错了?是“VK_TAB”或者是9……
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
} }
}
按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的).
所以我的程序不好通过了.
再次谢谢各位!
我在北京,
妹儿是[email protected]
欢迎大家来玩.
或者你把标准输出重定向了……
TAB键按下肯定有响应的……
你看完ctDangaeStart_actionPerformed就明白了.
当然这样一来就不规范了.按F11后ctxtDangaeStartTime.setText(calSTART_JISSEKI_DATE);执行.
时间被改变了啊.
我在控制台输出就是因为不调用过程,
才打印在控制台来看的,
结果还是不行,根本没有.
DEBUG发现就根本没调用啊!
JDK的版本是1.3.0_C
谢谢各位大侠.
你的按键事件并非发生在JFrame的,而是发生在里面的对象上的,而这些对象默认都有对TAB键的处理,所以这个消息就被消化掉了,传不到JFrame来……而你其他F11等键由于没有默认的处理,所以就传递给JFrame来处理……
你试试在一个TEXTAREA或BUTTON监听,肯定能监听TAB键的……我对JAVA的图形编程不是很熟悉,姑妄言之……
何必和tab键较劲!
我想很有可能,JTEXT什么的也检测不到TAB键.现在没有一点头绪了.
这样你就只能针对需要捕捉这个按键的对象来监听了……