---------------------- android培训、java培训、期待与您交流! ----------------------
今天看视频做了个小练习,感觉挺有意思的,跟大家分享一下,我用到的java方法和类是java.awt.*;中的,基本的练习要求是创建一个窗体,包含一行文本框,一个叫做“转到”的按钮,和一大片文本域。功能要求实现在文本框中输入正确的且存在的路径,否则弹出提示窗口报错,点击“转到”按钮,则在文本域中显示对应路径下的文件目录。
首先我们应当先创建所有用到的组件,并进行初始化,然后添加监听器,定义相应的触发事件。
Dialog类似于Frame,也需要进行相应的设置,且Dialog也是一个容器类,使用时需要将其他的组件添加进来,Dialog类提供的构造方法很多,其中有传入自己对象,或者是传入Frame对象,例如Dialog(Frame owner,String title, Boolean modal),值得注意的是modal,它有true和false两个值,当为true时,对话框必须被操作完成才能操作其它组件,false则反之。不多说了,具体代码如下:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public classDialogDemo {
publicstaticvoidmain(String []args)
{
new DialogDemo1();
}
}
class DialogDemo1
{
private Frame fr;
private TextField tf;
private Button but1;
private TextArea ta;
private Dialog dl;
private Button but2;
private Label lb;
DialogDemo1()
{
init();
}
public void init()
{
fr=new Frame("我的窗体");
fr.setLayout(new FlowLayout());
fr.setBounds(300,100,700,600);
tf=new TextField(30);
fr.add(tf);
but1=new Button("转到");
fr.add(but1);
ta=new TextArea(30,70);
fr.add(ta);
dl=new Dialog(fr,"提示信息",true);
dl.setBounds(300,100,300,200);
dl.setLayout(new FlowLayout());
but2=new Button("确定");
lb=new Label();
dl.add(lb);
dl.add(but2);
fr.setVisible(true);
myEvent();
}
private void myEvent()
{
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
showDir();
}
}
});
dl.addWindowListener(new WindowAdapter()
{
public voidwindowClosing(WindowEvent e)
{
dl.setVisible(false);
}
});
but2.addActionListener(new ActionListener()
{
public voidactionPerformed(ActionEvent e)
{
dl.setVisible(false);
}
});
fr.addWindowListener(new WindowAdapter()
{
public voidwindowClosing(WindowEvent e)
{
System.exit(0);
}
});
but1.addActionListener(new ActionListener()
{
public voidactionPerformed(ActionEvent e)
{
showDir();
}
});
}
public void showDir()
{
Stringdirpath=tf.getText();
Filedir=newFile(dirpath);
if(dir.exists() &&dir.isDirectory())
{
ta.setText("");
String[]names=dir.list();
for(String name:names)
{
ta.append(name+"\r\n");
}
}
else
{
Stringtext="您输入的"+dirpath+"有误";
lb.setText(text);
dl.setVisible(true);
}
}
}
其实Dialog类和Frame类相似,只是实现的功能不同,在学习了Frame类之后,Dialog学习起来就相对轻松了。
---------------------- android培训、java培训、期待与您交流! ----------------------