*/
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class Demo
{
private Frame f;//显示窗口
private TextField tf;//输入框
private TextArea ta;//文本框
private Button but;//按键
private Dialog d;;//对话窗口
private Button isok;
private Label lab;//提示标签
//菜单
private MenuBar mb;//菜单栏
private Menu m,m1;//菜单(是属于菜单栏中的)
private MenuItem closeItem,item,item1;//菜单项(是属于菜单 中的)
Demo()
{
init();
}
public void init()
{
f=new Frame("my window");
f.setBounds(600,400,800,600);
f.setLayout(new FlowLayout());
tf=new TextField(60);
but=new Button("转到");
ta=new TextArea(25,40);
//初始化菜单
mb=new MenuBar();
m=new Menu("菜单");
m1=new Menu("子菜单");
closeItem=new MenuItem("退出");
item=new MenuItem("菜单项");
item1= new MenuItem("子菜单的菜单项");
f.add(tf);
f.add(but);
f.add(ta);
//添加菜单
f.setMenuBar(mb);//在显示窗口中添加菜单栏是通过setMenuBar()方法
mb.add(m);
m.add(item);
m.add(m1);
m1.add(item1);
m.add(closeItem);
d=new Dialog(f,"提示信息",true);//对话框要为true,才会显示
lab=new Label();
isok=new Button("OK");
d.setBounds(600,400,300,250);//设置对话框的位置(离屏幕左边距离,离屏幕右边距离,长,宽)
d.setLayout(new FlowLayout());//设置对话框的布局,这里设置了流水布局
d.add(lab);
d.add(isok);
myEvent();//调用事件监听
f.setVisible(true);//窗口默认是隐藏的,需要调用此函数才能显示窗口
}
public void myEvent()//事件监听函数
{
tf.addKeyListener(new KeyAdapter()//键盘监听
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)//按下enter键,实现相对应的操作
showDir();
}
});
d.addWindowListener(new WindowAdapter()//窗口监听
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);//按下右上角x键,关闭窗口
}
});
//注意:addActionListener,这个事件没有适配器
but.addActionListener(new ActionListener()//button动作监听,按下button键,实现相对应的操作
{
public void actionPerformed(ActionEvent e)
{
showDir();
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);//退出程序
}
});
closeItem.addActionListener(new ActionListener()//动作监听,按下菜单中的 退出键 退出程序
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public void showDir()
{
String dirPath=tf.getText();//获取 输入框 的文本信息
File dir=new File(dirPath);
if(dir.exists() && dir.isDirectory())//判断获取的信息是否存在,是否是目录
{
ta.setText("");
String[] names=dir.list();//只有目录存在,才能list,列出目录里面的内容
for(String name:names)
{
ta.append(name+"\r\n");
//append()此方法是 文件框 的方法,从原有的内容末尾添加,所以不会覆盖原有内容
//ta.setText(name);
}
}
else
{
String info="您输入的信息有误........."+dirPath+"请重新输入";
lab.setText(info);//将内容加入到提示标签
d.setVisible(true);
}
tf.setText("");//每次显示目录都清空原有的目录信息
}
public static void main(String[] args)
{
new Demo();
}
} |
|