Runtime, jTextField 验证, itemStateChanged 执行两次

阅读更多
上上周的一些笔记,有点乱蓬蓬

private String senderName;
private String smtpHost;
private String user;
private String password;
private String senderAddress;
java mail 发送邮件时, senderName  签名,smtpHost,直接是host(例如:sina.com, 
localhost)user只是用户名,不需要加上@localhost(例如  manager)  senderAddress则需要加上@符
号 如[email protected]

==============================
Runtime的 一些规则  http://lang_m.itpub.net/post/4398/71874
最后,作者总结了几条规则,防止我们在进行Runtime.exec()调用时出现错误。

1、 在一个外部进程执行完之前你不能得到他的退出状态
2、 在你的外部程序开始执行的时候你必须马上控制输入、输出、出错这些流。
3、 你必须用Runtime.exec()去执行程序
4、 你不能象命令行一样使用Runtime.exec()。

==============================
Runtime.exec()调用的程序,在本程序退出之后,也不会退出,即,被调用的程序相对于主程序是独立的,
==============================
http://blog.csdn.net/nmgfire007/archive/2007/01/21/1489151.aspx
PipedInputStream&&PipedOutputStream使用    
==============================
System.getProperty("java.home") 不等于 设置的JAVA_HOME, 如果在 c:\program files\java中
有jdk的话,设置的是JAVA_HOM是另一个目录,将会出现不一致
解决方法:  -Djava.home=C:\j2sdk1.4.2_14\jre
其实最直接的方法可能是  %JAVA_HOME%/bin/java 。。。,这样,程序中的  java.home 就是
%JAVA_HOME%/jre 了

ant可以用 -Djava.home=C:\j2sdk1.4.2_14,在ant的程序中打出来的 java.home却是
c:\j2sdk1.4.2_14\jre,为什么?
==============================
  itemStateChanged 中两个子事件(取消选中,和选中),所以一般会触发两次,
需要加判断,  
   
  这个事件还个标识为,表示的当前是选中还是取消选中,  
   
  所以会执行选中一次的操作,还会执行取消选中的,一次操作。  
   
  如下解决,使用ItemListener的itemStateChanged:  
   
          jComboBox1.addItem("111");  
          jComboBox1.addItem("222");  
          jComboBox1.addItemListener(new   ItemListener()   {  
              public   void   itemStateChanged(ItemEvent   e)   {  
                  jComboBox1_itemStateChanged(e);  
              }  
          });      
   
      public   void   jComboBox1_itemStateChanged(ItemEvent   e)   {  
          System.out.println("e.getStateChange()=="   +   e.getStateChange());  
          if   (e.getStateChange()   ==   e.SELECTED)   {   //这里控制为只处理一次  
              System.out.println("选中了");  
          }  
  //         if   (e.getStateChange()   ==   e.DESELECTED)   {   //这里控制为只处理一次
 
  //             System.out.println("选中了");  
  //         }  
   
      }  
   
http://topic.csdn.net/t/20060117/18/4521936.html
==============================
JTextField   永久性失去焦点,如何重新获得焦点 ???
==============================
接上一个问题,如果要验证 jTextField的话,需要将 textField.setInputVerifier();
protected void setInputVerify(final JTextField txtInterval,final String msg){
  txtInterval.setInputVerifier(new InputVerifier(){
   public boolean verify(JComponent input) {
    int dayInterval = 0;
    try {
      dayInterval =
Integer.parseInt(txtInterval.getText());
    } catch (NumberFormatException e1) {
     dayInterval = -1;
    }
    if(dayInterval <=0){
     SwingUtils.showErrorDialog(msg, "");
     return false;
    }
    return true;
   }
  });
}

你可能感兴趣的:(Java,Ant,.net,C,C++)