本帖最后由 Jiewin 于 2013-8-4 15:41 编辑
- <BLOCKQUOTE>
- import java.io.*;
- import java.awt.*;
- import java.awt.event.*;
- class MyWindow{
- public static void sop(Object obj){System.out.println(obj);}
- public static void main(String[] args) {new MyWindow();}
- MyWindow() {init();}
-
- private Frame f;
- private Button fb;
- private TextField tf;
- private TextArea ta;
- private Dialog d;
- private Button db;
- private Label dl;
- private String path1;
- private String path2;
-
- //窗体
- public void init(){
- //创建组件
- f = new Frame("扫描文件"); //主窗体(名称)
- d = new Dialog(f,"提示!",true); //提示框
- tf = new TextField(70); //文本输入框(列数)
- ta = new TextArea(25,80); //文本域(行数,列数)
- fb = new Button("遍历"); //按钮(文字)
- dl = new Label(); //提示框标签
- db = new Button("确定"); //提示框确定
- f.add(tf);
- f.add(fb);
- f.add(ta);
- d.add(dl);
- d.add(db);
- //设置主窗体属性
- f.setVisible(true); //显示窗体
- f.setBounds(300,200,600,500); //左上角位置和大小
- f.setLayout(new FlowLayout()); //布局模式
- f.setBackground(Color.red); //背景颜色
- f.setForeground(Color.blue); //前景颜色
- f.setName("哈哈"); //重设名称
-
- //设置提示框属性
- d.setBounds(600,300,250,150); //设置窗口左上角和大小
- d.setResizable(false); //禁止调整窗体大小
- d.setLayout(new FlowLayout()); //设置布局模式
- d.setSize(200,100); //设置对话框大小
- d.setLocation(500,400); //重新设置对话框左上角,相对于屏幕
-
- myEvent();
- }
- //监听器
- private void myEvent(){
- //主窗体监听器
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e){
- System.exit(0);
- }});
- //主窗体按钮监听器
- fb.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- butAction();
- d.setVisible(false);
- }});
- //提示对话框窗体监听器
- d.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e){
- d.setVisible(false);
- }});
- //提示对话框按钮监听器
- db.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
-
- d.setVisible(false);
- tf.requestFocus();//获取焦点
- }});
- //键盘监听器
- tf.addKeyListener(new KeyAdapter(){
- public void keyPressed(KeyEvent e){
- if(e.getKeyCode()==KeyEvent.VK_ENTER)
- butAction();
- d.setVisible(false);
- }});
- }
-
- /*提交按钮事件
- *isDirectory()判断是否是目录
- *exists()判断是否存在*/
- public void butAction(){
- path1 = tf.getText();
- if(path1!=""){
- File path = new File(path1);
- if(path.exists() && path.isDirectory()){
- tf.requestFocus(); //文本框获取焦点,问题是怎么把焦点放在输入的内容的末尾?然后可以接着输入
- path2 = path.toString();
- ta.setText(""); //先清空文本域的内容
- String[] names = path.list();
- for(String name : names)
- ta.append(name+"\r\n"); //添加数据到文本域
- }else{
- tf.setText(path2); //如果路径无效,就设置文本框的内容为最后一次正确输入的路径
- String d_Info = "你输入的:"+path+"不是有效路径!";
- dl.setText(d_Info);
- d.setVisible(true);
- }
- }
- }
- }
复制代码 这是视频第22天的10里的一个练习,就是在窗体里添加一个文本框,一个按钮,一个文本域,
在文本框里输入路径,点按钮在在文本域里显示该路径下的所有文件和文件夹,设置有各种监视器,
现在有两个问题不知道怎么解决,希望大家指点迷津
1、你们执行看看,在文本框里输入一个有效的路径,然后点遍历,或按Enter,能把数据写入到了文本域了,但现在的输入焦点在文本框的最开头,怎么才能放在末尾?
2、就像登录QQ输入密码,输错了就把密码框里的内容设置为选择状态,方便删除!怎么做呢?我想在点确定返回后选作文本框的内容(如果有数据)?
|