BBS水木清华站∶精华区

发信人: greenleaf (西瓜太郎), 信区: Java        
 
 
 
1.要显示一个save的对话框,某本书上给了一个例程如下 
 
        FileDialog fdlg = new FileDialog(this,"Save File",FileDialog.SAVE); 
        fdlg.setFilenameFilter("*.txt"); 
        fdlg.setDirectory("."); 
        fdlg.setFile("1.txt"); 
        fdlg.show(); 
        strFileName = fdlg.getFile(); 
        if(strFileName != null) 
        { 
                // do something 
        } 
 
  然而编译时第二句却通不过,请问第二句该怎么写 ? 
 
2. 如何让一个Frame的"最大化"按钮失效? 
 
3. 在一个Frame中画了一些TextField,希望只能输入数字和小数点“.”,因此 
   写了如下方法: 
 
        public boolean keyDown(Event evt,int nKey) 
        { 
                if(evt.target instanceof TextField) 
                { 
                        TextField tf = (TextField)evt.target; 
                        try 
                        { 
                                if(!((nKey>=48)||(nKey<=57)||(nKey==46))) 
                                        throw new NumberFormatException(); 
                        } 
                        catch(NumberFormatException e) 
                        { 
                                tf.requestFocus(); 
                                return true; 
                        } 
                } 
                return super.keyDown(evt,nKey); 
        } 
   但是执行结果却仍然是textfield中能输入字母,请问该怎么办? 
 
       快考试了,大家时间都很紧张,感谢解答的同学或老师们,谢谢!!! 
 
 
 
 
发信人: KHP (人之初), 信区: Java        
 
【 在 greenleaf (西瓜太郎) 的大作中提到: 】 
∶ 1.要显示一个save的对话框,某本书上给了一个例程如下 
∶         FileDialog fdlg = new FileDialog(this,"Save File",FileDialog.SAVE); 
∶         fdlg.setFilenameFilter("*.txt"); 
这个方法的参数是FilenameFilter对象,而不是字符串。 
需要你自己继承FilenameFilter接口写一个类,不难。 
 
∶         fdlg.setDirectory("."); 
∶         fdlg.setFile("1.txt"); 
∶         fdlg.show(); 
∶         strFileName = fdlg.getFile(); 
∶         if(strFileName != null) 
∶         { 
∶                 // do something 
∶         } 
∶   然而编译时第二句却通不过,请问第二句该怎么写 ? 
 
∶ 2. 如何让一个Frame的"最大化"按钮失效? 
setResizable(false); 
 
 
 
 
发信人: greenleaf (西瓜太郎), 信区: Java        
 
【 在 KHP (人之初) 的大作中提到: 】 
∶ 这个方法的参数是FilenameFilter对象,而不是字符串。 
∶ 需要你自己继承FilenameFilter接口写一个类,不难。 
 
  我查了几本书,但书上说的都不清楚,我看不太懂,还得麻烦您指教。谢谢!!! 
 
∶ setResizable(false); 
这句话只能使窗体不能通过鼠标的拖动改变大小,但是最大化按钮仍有效. 
 
 
 
发信人: SuZ (飞虫), 信区: Java        
 
【 在 greenleaf (西瓜太郎) 的大作中提到: 】 
∶ 1.要显示一个save的对话框,某本书上给了一个例程如下 
∶         FileDialog fdlg = new FileDialog(this,"Save File",FileDialog.SAVE); 
∶         fdlg.setFilenameFilter("*.txt"); 
∶         fdlg.setDirectory("."); 
∶         fdlg.setFile("1.txt"); 
∶         fdlg.show(); 
∶         strFileName = fdlg.getFile(); 
∶         if(strFileName != null) 
∶         { 
∶                 // do something 
∶         } 
∶   然而编译时第二句却通不过,请问第二句该怎么写 ? 
∶ 2. 如何让一个Frame的"最大化"按钮失效? 
∶ 3. 在一个Frame中画了一些TextField,希望只能输入数字和小数点“.”,因此 
∶    写了如下方法: 
∶         public boolean keyDown(Event evt,int nKey) 
∶         { 
∶                 if(evt.target instanceof TextField) 
∶                 { 
∶                         TextField tf = (TextField)evt.target; 
∶                         try 
∶                         { 
∶                                 if(!((nKey>=48)||(nKey<=57)||(nKey==46))) 
∶                                         throw new NumberFormatException(); 
∶                         } 
∶                         catch(NumberFormatException e) 
∶                         { 
∶                                 tf.requestFocus(); 
∶                                 return true; 
∶                         } 
∶                 } 
∶                 return super.keyDown(evt,nKey); 
∶         } 
∶    但是执行结果却仍然是textfield中能输入字母,请问该怎么办? 
可以在button的change 检测当前的值是不是数字,或数字加 "." 
如果不是就恢复成上一次的数据,如果是就保存在一个变量中。(用于恢复) 
 
∶        快考试了,大家时间都很紧张,感谢解答的同学或老师们,谢谢!!! 
 
 
 
 
发信人: KHP (人之初), 信区: Java        
 
【 在 greenleaf (西瓜太郎) 的大作中提到: 】 
∶   我查了几本书,但书上说的都不清楚,我看不太懂,还得麻烦您指教。谢谢!!! 
比如: 
public 
class TypeFilter implements FilenameFilter { 
 
    public boolean accept(File dir, String name) { 
                if (name.endsWith(".txt")) return true; 
                return false; 
    } 
 
} 
 
∶ 这句话只能使窗体不能通过鼠标的拖动改变大小,但是最大化按钮仍有效. 
恐怕没有办法在Java里做到这一点,这个特性可能不是平台无关的, 
因此Java里没有提供相应的方法 
 
 
 
发信人: greenleaf (西瓜太郎), 信区: Java        
 
【 在 KHP (人之初) 的大作中提到: 】 
∶ 比如: 
∶ public 
∶ class TypeFilter implements FilenameFilter { 
∶     public boolean accept(File dir, String name) { 
∶                 if (name.endsWith(".txt")) return true; 
∶                 return false; 
∶     } 
∶ } 
∶ 恐怕没有办法在Java里做到这一点,这个特性可能不是平台无关的, 
∶ 因此Java里没有提供相应的方法 
 
那能不能截获最大化的消息呢?这样就可以使窗体的尺寸不变了。 
 
 
 

BBS水木清华站∶精华区