《Java就业培训教程》_张孝祥_书内源码_09

《Java就业培训教程》 作者:张孝祥 书中源码
《Java就业培训教程》P316源码
程序清单:TestStopWatch.java
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.SimpleDateFormat;
class StopWatch extends Canvas implements Runnable
{
 private long startTime = 0;
 private long endTime = 0;
 private boolean bStart = false;
 public StopWatch()
 {
  enableEvents(AWTEvent.MOUSE_EVENT_MASK);
  setSize(80,30);
 }
 protected void processMouseEvent(MouseEvent e)
 {
  if(e.getID() == MouseEvent.MOUSE_PRESSED)
  {
/*鼠标按下时,启动计时线程,并让起始时间变量和终止时间变量都等于当前时间*/
   bStart = true;
   startTime = endTime  = System.currentTimeMillis();
   repaint();
   new Thread(this).start();
  }
  else if(e.getID() == MouseEvent.MOUSE_RELEASED)
  {
   /*鼠标释放时,终止计时线程,并重绘窗口表面上的内容*/
   bStart = false;
   repaint();
  }
  super.processMouseEvent(e);
 }
 public void paint(Graphics g)
 {
/*时间值的小时、分钟、秒、都用两位数字显示,
不足两位的部分前面加0,即"HH:mm:ss"这种的格式。*/
  SimpleDateFormat sdf= new SimpleDateFormat("HH:mm:ss");
 /*最刚开始编写这个程序的时候,直接使用elapsedTime.setTime(endTime-startTime);
语句设置elapsedTime时间对象的数字值,从运行结果上发现,即使endTime-startTime等于0,
但elapsedTime显示的时间却不是"00:00:00",而是"08:00:00"。我们曾经讲过,时间在计算机
内存中也是用一个长整数表示的,在这里,我们又发现,即使这个内存中的长整数等于0时,由于
Date类考虑了本地时区问题,所以,其表示的时间就不一定为"零点:零分:零秒"。这里不需要
考虑时区问题,只是借助Date类来帮我们生成"HH:mm:ss"这种时间表示格式。明白这个问题后,
我们就不难想像出,可以先求出显示时间为"00:00:00"的时间对象在内存中对应的那个长整数,
然后在这个基础上加上计时器所记下的时间值,最后就可以显示出我们想要的结果。*/ 
  Date elapsedTime =null;
  try
  {
  elapsedTime= sdf.parse("00:00:00");
  }catch(Exception e){}
  elapsedTime.setTime(endTime - startTime +
 elapsedTime.getTime());
  String display =  sdf.format(elapsedTime);
  g.drawRect(0,0,78,28);
  g.fill3DRect(2,2,75,25,true);
  g.setColor(Color.WHITE);
  g.drawString(display,10,20);
 }
 public void run()
 {
  while(bStart)
  {
   try
   {
   Thread.sleep(500);
   }catch(Exception e){e.printStackTrace();}
   endTime = System.currentTimeMillis();
   repaint();
  }
 }
}
public class TestStopWatch
{
 public static void main(String [] args)
 {
  Frame f =new Frame("StopWatch");
  f.add(new StopWatch());
  f.setSize(200,200);
  f.setVisible(true);
   f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
    {
     System.exit(0);
    }
    });
 }
}
《Java就业培训教程》P319源码
程序清单:TestCheckbox.java
import java.awt.*;
import java.awt.event.*;
public class TestCheckbox
{
 Checkbox cb1=new Checkbox("你喜欢我吗?",true);
 CheckboxGroup cbg=new CheckboxGroup();
 Checkbox cb2=new Checkbox("喜欢",cbg,true);
 Checkbox cb3=new Checkbox("不喜欢",cbg,false);
 
 public void init()
 {  
  Frame f=new Frame("TestCheckBox");
  //创建FlowLayout布局管理器,关于布局管理器,本章后面有专门的讲解,
  看不明白//的读者暂时可以不去下面两句代码的作用。
  FlowLayout fl=new FlowLayout();
  f.setLayout(fl);
  
  f.add(cb1);
  f.add(cb2);
  f.add(cb3);
  cb1.addItemListener(new CbItemListener());
  cb2.addItemListener(new CbItemListener());
  cb3.addItemListener(new CbItemListener());
  f.setBounds(0,0,300,100);
  f.setVisible(true);
   f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
    {
     System.exit(0);
    }
   });
 }
 class CbItemListener implements ItemListener
 {
  public void itemStateChanged(ItemEvent e)
  {
   Checkbox cb = (Checkbox)e.getItemSelectable();
   if(cb.getLabel().equals("你喜欢我吗?"))
   {
    if(cb.getState() == true)
     System.out.println("我很高兴");
    else
     System.out.println("我很伤心");
   }
   /*else if(cb.getLabel().equals("喜欢"))
   {
    if(e.getStateChange() == ItemEvent.SELECTED)
     System.out.println("我也喜欢你");
    else
     System.out.println("我也不喜欢你");
   }*/
   else
   {
    Checkbox cbx =cbg.getSelectedCheckbox();
    if(cbx != null)
     System.out.println(cbx.getLabel());
   }
  }
 }
 public static void main(String[] args)
 {
  new TestCheckbox().init();  
 }
}
《Java就业培训教程》P321源码
程序清单:TestChoice.java
import java.awt.*;
import java.awt.event.*;
public class TestChoice
{
 Choice ch=new Choice(); //创建Choice对象
 TestChoice()
 {
  ch.add("choice1"); //用add方法向列表里加入选项
  ch.add("choice2"); //用add方法向列表里加入选项
  ch.add("choice3"); //用add方法向列表里加入选项
  FlowLayout fl=new FlowLayout();
  Frame f=new Frame("TestChoice");
  f.setLayout(fl);
  f.add(ch); //把列表加入到窗口
  f.setBounds(0,0,200,100);
  f.setVisible(true);
  f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
    {
     System.exit(0);
    }
   });
 }
 public static void main(String[] args)
 {
  new TestChoice();  
 }
}
《Java就业培训教程》P323源码
程序清单:TestMenuBar.java
import java.awt.*;
import java.awt.event.*;
public class TestMenuBar
{
 MenuBar menubar=new MenuBar(); //创建菜单条对象
 Menu fileM=new Menu("File"); //创建各菜单
 Menu editM=new Menu("Edit"); //创建各菜单
 Menu toolsM=new Menu("Tools"); //创建各菜单
 Menu helpM=new Menu("Help"); //创建各菜单
  
 MenuItem fileMI1=new MenuItem("New"); //创建各菜单项
 MenuItem fileMI2=new MenuItem("Open"); //创建各菜单项
 MenuItem fileMI3=new MenuItem("Save"); //创建各菜单项
 CheckboxMenuItem fileMI5=new CheckboxMenuItem("Quit",true);
  //创建各菜单项
 
     Menu filePrint = new Menu("print");//创建子菜单
     MenuItem printM1 = new MenuItem("preview");
     MenuItem printM2 = new MenuItem("setting");
     
 TestMenuBar()
 {
  FlowLayout fl=new FlowLayout();
  
  Frame f=new Frame("TestMenuBar");
  f.setLayout(fl);
  
  menubar.add(fileM); //将菜单加入菜单条
  menubar.add(editM);
  menubar.add(toolsM);
  menubar.add(helpM);
  
  fileM.add(fileMI1); //将菜单项加入file菜单中
  fileM.add(fileMI2);
  fileM.add(fileMI3);
  
  filePrint.add(printM1);//将菜单项加入print菜单中
  filePrint.add(printM2);
  fileM.add(filePrint);
 //将print菜单作为一个菜单项加入file菜单中
  
  fileM.addSeparator(); //将一条分割线加入菜单中
  fileM.add(fileMI5); //将菜单项加入菜单中
  f.setMenuBar(menubar); //把整个菜单系统显示在窗口中
  f.setBounds(0,0,250,200);
  f.setVisible(true);
  f.addWindowListener(new WindowAdapter()
{
   public void windowClosing(WindowEvent e)
   {
    System.exit(0);
   }
  });
 }
 
 public static void main(String[] args)
 {
  new TestMenuBar();
 }
}
《Java就业培训教程》P327源码
程序清单:TestDialog.java
import java.awt.*;
import java.awt.event.*;
public class TestDialog
{
 TextField tf = new TextField(10);
 Button b1=new Button("模态显示");
 Button b2=new Button("非模态显示");
 Frame f=new Frame("TestDialog");
 

 Button b3=new Button("确定");
        Dialog dlg = new Dialog(f, "Dialog Title", true);
        FlowLayout fl=new FlowLayout();
 TestDialog()
 {
 f.setLayout(fl);
 f.add(tf);
 f.add(b1);
 f.add(b2);
 b1.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {
   dlg.setModal(true);
   dlg.setVisible(true);
   tf.setText("www.it315.org");
  }
  });
 b2.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e)
  {
   dlg.setModal(false);
   dlg.setVisible(true);
   tf.setText("www.it315.org");
  }
  }); 
 f.setBounds(0,0,400,200);
 f.setVisible(true);
 f.addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent e)
  {
   System.exit(0);
  }
  });

 
 dlg.setLayout(fl);
 dlg.add(b3);
 b3.addActionListener(new ActionListener()
 {
  public void actionPerformed(ActionEvent e)
  {
   dlg.dispose();
  }
 });

 dlg.setBounds(0,0,200,150);
  
 }
 public static void main(String[] args)
 {
 new TestDialog();  
 }
}
《Java就业培训教程》P330源码
程序清单:TestPane.java
import java.awt.*;
import java.awt.event.*;
public class TestPane
{

 TestPane()
 {
  Frame f=new Frame("TestDialog");
  ScrollPane sp = new ScrollPane();
  TextArea ta = new TextArea("",10,50,TextArea.SCROLLBARS_NONE);
  sp.add(ta);
  
  f.add(sp);
  f.setSize(200,200);
  f.setVisible(true);
  f.addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent e)
  {
   System.exit(0);
   }
  });
 }
 public static void main(String[] args)
 {
  new TestPane();  
 }
}
《Java就业培训教程》P336源码
程序清单:TestCardLayout.java
import java.awt.*;
import java.awt.event.*;
public class TestCardLayout
{
 CardLayout cl = new CardLayout();
 Panel plCenter = new Panel();
 public static void main(String [] args)
 {
  new TestCardLayout().init();
 }
 public void init()
 {
  Frame f=new Frame("布局管理器");
  Panel plWest = new Panel();
  f.add(plWest,"West");
  f.add(plCenter);
  
  plWest.setLayout(new GridLayout(3,1));
  Button btnPrev = new Button("prev");
  plWest.add(btnPrev);
  Button btnNext = new Button("next");
  plWest.add(btnNext);
  Button btnThree = new Button("three");
  plWest.add(btnThree);
  
  plCenter.setLayout(cl);
  plCenter.add(new Button("One"),"1");
  plCenter.add(new Button("two"),"2");
  plCenter.add(new Button("three"),"3");
  plCenter.add(new Button("four"),"4");
  plCenter.add(new Button("five"),"5");

  class MyActionListener implements ActionListener
  {
   public void actionPerformed(ActionEvent e)
   {
    if(e.getActionCommand().equals("prev"))
     cl.previous(plCenter);
    else if(e.getActionCommand().equals("next"))
     cl.next(plCenter);
    else if(e.getActionCommand().equals("three"))
     cl.show(plCenter,"3");
   }
  }
  MyActionListener ma = new MyActionListener();
  btnPrev.addActionListener(ma);
  btnNext.addActionListener(ma);
  btnThree.addActionListener(ma);
    
  f.setSize(300,300);
  f.setVisible(true);
 }
}
《Java就业培训教程》P343源码
程序清单:Calculator.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator implements ActionListener
{
    JFrame jf = new JFrame("Calculator");
    JTextField tf = new JTextField();
    public void init()
    {
      Container c = jf.getContentPane();
      tf.setHorizontalAlignment(JTextField.RIGHT); 
        c.add(tf,"North");
       
        JPanel pnl=new JPanel();
        c.add(pnl,"Center");
 
        pnl.setLayout(new GridLayout(4,4));
        JButton b=new JButton("1");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("2");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("3");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("+");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("4");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("5");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("6");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("-");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("7");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("8");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("9");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("*");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("0");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton(".");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("=");
        b.addActionListener(this);
        pnl.add(b);
        b=new JButton("//");
        b.addActionListener(this);
        pnl.add(b);
       
        jf.setSize(200,300);
        jf.setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
        tf.setText(tf.getText()+e.getActionCommand());
    }
    public static void main(String [] args)
    {
 new Calculator().init();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书主要是冲着实际应用而来的,共分11章。在刚开始的第一章就详细地讲解了Java开发环境的搭建、反编译工具的使用、JDK文档资料的查阅,Java程序的编译、运行过程。在第二章中,全面地讲解Java的基本语法知识,对基本语法的讲解也不是泛泛而谈,而是在其中贯穿各种实际应用中的巧妙用法和注意事项。在第三章和第四章中,透彻系统地讲解了面向对象的思想和应用。在以后的章节中,用通俗易懂的手法,紧密联系实际应用的方式,深入浅出地讲解了多线程,常用Java类,Java中的I/O(输入输出)编程,GUI与Applet,网络编程等方面的知识。 本书许多内容都来源于程序员圈子里的非正式交流,或源于某些成功的案例与作者的经验、心得,但这些东西对新手来说,是很难自学到的。作者从事了多年的软件开发和培训教学,非常清楚那些容易使新手困惑的问题,在学习过程中会碰到的拦路虎,作者结合了多年实际开发与教学经验,收集了众多学员在学习中常提到的问题,对平时讲课的内容进行了精心整理。读者从本书中不仅可以学习到Java本身方面的知识,还能学到了许多编程思想和实际操作手法,仿佛老手就在你面前进行现场演示一样。本书不仅全面的介绍了Java语言本身,最重要还交会读者去掌握编程思想,找到编程感觉,而不是死记硬背语言本身,书中涉及到的应用问题分析,远远超了一个Java程序员在学习和应用Java过程中所有可能碰到的问题。 本书不仅讲概念,讲怎么做,还告诉读者为什么;不仅讲操作技能,还贯穿一些系统的理论,这样读者才不至于不明不白,或是似乎明白,但不知道具体该怎么干。本书一步步引导读者深入,使读者轻松愉快、兴趣盎然、水到渠成、潜移默化地掌握Java编程及许多其他的软件开发思想。 本书语言流畅,内容翔实,分析透彻,是一本适合广大计算机编程爱好者的优秀读物。本书结构合理,图文并茂,实用性强,适合于广大有经验的开发人员来迅速转换到Java语言,对广大初学计算机编程语言的爱好者来说,这本书就是非常好的切入点。本书基本理论知识完备,又紧密联系实际开发,也非常适合作为大专院校师生的教学与学习用书,将给广大师生带来一种革命性的教学方式与学习思路,令人耳目一新。 这不是一本参考资料和Java百科全书,不是什么"宝典"和"大全",但却可以让新手变为老手,相信学完此书,再看任何以前看不懂的Java书都会显得非常轻松。即使是很有经验的老手,也能从本书中有巨大收益。如果你想非常轻松就精通Java编程,并期望学完便能参加实际的开发工作,本书就是你非常好的一个选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值