黑马程序员-GUI练习

 

----------- android培训java培训java学习型技术博客、期待与您交流! ------------ 

 

练习-列出指定目录内容

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class  MyWindowDemo
{
 private Frame f;
 private TextField tf;
 private Button but;
 private TextArea ta;
 
 private Dialog d;
 private Label lab;
 private Button okBut;


 MyWindowDemo()
 {
  init();
 }


 public void init()
 {
  f = new Frame("my window");
  f.setBounds(300,100,600,500);
   //距左,距右,横向,纵向
  f.setLayout(new FlowLayout());

  tf = new TextField(60);

  but = new Button("转到");

  ta = new TextArea(25,70);


  d = new Dialog(f,"提示信息-self",true);
  //顶层窗口,默认边界布局,若后面参数为false,则可以不管它,继续执行其他窗口程序。

  d.setBounds(400,200,240,150);
  d.setLayout(new FlowLayout());
  lab = new Label();
  okBut = new Button("确定");

  d.add(lab);
  d.add(okBut);

 

  f.add(tf);
  f.add(but);
  f.add(ta);


  myEvent();
  f.setVisible(true);
 }


 private void  myEvent()
 {

  okBut.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    d.setVisible(false);
   }
  });


  d.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    d.setVisible(false);
  //最小化,不一定非要关闭
   }
  });

 

 

  //回车的功能,和转到按钮效果一样。
  tf.addKeyListener(new KeyAdapter()
  {
   public void keyPressed(KeyEvent e)
   {
    if(e.getKeyCode()==KeyEvent.VK_ENTER)
     showDir();
   }
  });

 


  but.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    showDir();
    
   }
  });

 

  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0); 
   }
  });
 }

 


 //封装一下,便于多次利用。
 private void showDir()
 {
  String dirPath = tf.getText();
    
  File dir = new File(dirPath);

  if(dir.exists() && dir.isDirectory())
  {
   ta.setText("");
   String[] names = dir.list();
   for(String name : names)
   {
    ta.append(name+"\r\n");
   }
  }
  else
  {
   String info = "您输入的信息:"+dirPath+"是错误的。请重输";
   //输入提示信息
   lab.setText(info);
   d.setVisible(true);
  }
 }

 

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


}


 

 

菜单

 

import java.awt.*;
import java.awt.event.*;


class MyMenuDemo
{

 private Frame f;
 private MenuBar mb;
 private Menu m,subMenu;
 private MenuItem closeItem,subItem;

 

 MyMenuDemo()
 {
  init();
 }


 public void init()
 {
  f = new Frame("my window");
  f.setBounds(300,100,500,600);
  f.setLayout(new FlowLayout());
  //文本框可以使用边界布局(默认布局,不用FlowLayout();),则不会随着调整窗口大小而造成布局混乱。


  mb = new MenuBar();

  m = new Menu("文件");

  subMenu = new Menu("子菜单");
  //条目没有箭头,子菜单有。


  subItem = new MenuItem("子条目");
  closeItem = new MenuItem("退出");//菜单项是最终项。

  
  subMenu.add(subItem);

  m.add(subMenu);
  m.add(closeItem);
  mb.add(m);

  f.setMenuBar(mb);

  myEvent();

  f.setVisible(true);


 }


 private void myEvent()
 {

  closeItem.addActionListener(new ActionListener()
  {
   public void actionPerformed(ActionEvent e)
   {
    System.exit(0);
   }
  });
  f.addWindowListener(new WindowAdapter()
  {
   public void windowClosing(WindowEvent e)
   {
    System.exit(0); 
   }
  });
 }


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


}

 

 

ps:改变class包存放位置
javac -d c:\myclass MyMenuTest.java

jar -cvf my.jar mymenu

需要将主函数的类名告诉java包

记事本:
Main-Class: (空格)mymenu.MymenuText(回车)

-m 包含指定清单中的清单信息

jar cvfm classes.jar mymanifest -c foo/.

jar -cvfm


工具-文件夹选项-文件类型-找到jar类型(若没有可以新建一个)-open操作


新建:
新建扩展名为JAE的文件,高级-修改图标-确定-新建-操作open,用于执行操作的应用程序-浏览-jre\bin\javaw.exe -jar-确定

 

 

 

----------- android培训java培训java学习型技术博客、期待与您交流! ------------ 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值