GUI学习笔记MyWindowDemo.java

本文介绍了一个使用Java实现的简单窗口应用,包括文件路径输入、目录显示及基本事件监听功能。通过创建窗口、添加组件、设置布局、处理窗口关闭事件和按键事件,展示了Java GUI编程的基本步骤和文件操作的实现。重点在于事件驱动编程模型的应用,以及如何通过键盘输入和按钮点击来触发特定功能。
 


import java.awt.*;
import java.awt.event.*;
import java.io.*;//还不会的知识

class MyWindowDemo //extends Frame
{
 private Frame f;
 private Button but;
 private TextField tf;
 private TextArea ta;

 private Dialog d;
 private Label lab;
 private Button okbut;

 MyWindowDemo()
 {
  init();
 }
 public void init()
 {
  f=new Frame("my window");
  f.setBounds(200,100,600,550);
  f.setLayout(new FlowLayout());
  tf=new TextField(60);
  f.add(tf);
  but=new Button("转到");
  f.add(but);
  ta=new TextArea(15,70);
  f.add(ta);

  d=new Dialog(f,"提示信息-self",true);
  d.setBounds(215,115,200,100);
  d.setLayout(new FlowLayout());
  lab=new Label();
  d.add(lab);
  okbut=new Button("确定");
  d.add(okbut);

  myEvent();
  f.setVisible(true);
 }
 public void myEvent()
 {
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  }
  );
  okbut.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    d.setVisible(false);
   }
  }
  );
  d.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    d.setVisible(false);
   }
  }
  );
  but.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    
    showDir();
    //ta.setText("你错误了");
    /*
    String text=tf.getText();
    ta.setText(text);//System.out.println(text);
    tf.setText("");
    */
   }
  }
  );
  tf.addKeyListener(new KeyAdapter()
  {
   public void keyPressed(KeyEvent e)
   {
    if(e.getKeyCode()==KeyEvent.VK_ENTER)
    {
     showDir();
    }
   }
  }
  );
  okbut.addKeyListener(new KeyAdapter()
  {
   public void keyPressed(KeyEvent e)
   {
    if(e.getKeyCode()==KeyEvent.VK_ENTER)
     d.setVisible(false);
   }
  }
  );
 }
 public void showDir()
 {
  String dirPath=tf.getText();//还不会的知识
  File dir=new File(dirPath);
  if(dir.exists() && dir.isDirectory())
  {
   String[] names=dir.list();
   for(String name : names)
   {
    tf.setText("");
    ta.append(name+"\r\n");
   }
  }
  else
  {
   String info="你输入信息:"+dirPath+"是错误的。请重输!";
   lab.setText(info);
   d.setVisible(true);
  }
 }
 /*class ActionDemo implements ActionListener
 {
 }
 */

 public static void main(String[] args)
 {
  new MyWindowDemo();
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值