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水木清华站∶精华区