经过我仔细的通读代码,终于让我找到了错误所在,还真不容易啊
其实就是个小问题,版主一不小心多点了个分号,但是这种小问题很纠结啊
错误所在:
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER);
showDir();
}
});
版主给文本框创建键盘监听的时候,在if后头多加了分号 " ; "
因为这个分号,导致了,当光标在文本框内时,只要你每点击一下键盘中任意一个按钮,都会调用showDir()方法
然后就是判断
if(dir.exists()&&dir.isDirectory())
你输入的是否存在,是否是文件夹
很明显最多只有一个字符,不可能是盘符,也不可能是绝对路径
所以只能运行else方法
else
{
String info="您输入的信息:"+text+"是错误的,请重新输入";
lab.setText(info); //增加标签文本
d.setVisible(true);
}
这时候,提示框 d 的属性就变为 true 了,就弹出了提示框
就是这个小问题,有时候真的很头疼
如果你想要在弹出提示框后,按一下回车就能关闭提示框
那就在myEvent()方法中
创建一个确定按钮okbut的键盘监听,
就像这样
okbut.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
d.setVisible(false);
}
});
这个键盘监听表示,当你键盘输入的是回车时,提示框的属性变为false ,就是将提示框隐藏
还有,我发现你没有把lab添加到提示框中,所以当提示框弹出的时候,上面没有显示信息,只有一个按钮
在整个程序中,你定义一个Label lab 完全就没有意义了
所以你在前面应该将lab添加到提示框中
d.add(lab);
|