Java2实用教程(第二版)程序代码——第二十五章 Java Swing 基础

   1//例子1
   2import javax.swing.*;import java.awt.*;import java.awt.event.*;
   3public class Example25_1
   4{  public static void main(String args[])
   5    {  JButton button=new JButton("轻组件按钮");
   6        JTextArea text=new JTextArea("轻组件",20,20);
   7        JFrame  jframe=new JFrame("根窗体");
   8        jframe.setSize(200,300);jframe.setBackground(Color.blue);
   9        jframe.setVisible(true);jframe.pack();
  10        jframe.addWindowListener(new WindowAdapter()
  11              {public void windowClosing(WindowEvent e)
  12                {System.exit(0);} 
  13                 }
);
  14         Container contentpane=jframe.getContentPane();//获得内容面板。
  15         contentpane.add(button,BorderLayout.SOUTH); //向内容面板加入组件。
  16         contentpane.add(text,BorderLayout.CENTER);
  17         jframe.pack();
  18  }
 
  19}

  20
  21//例子2
  22import javax.swing.*;import java.awt.*;import java.awt.event.*;
  23class Mywindow extends JFrame
  24{  JButton button;JTextArea text;
  25   Mywindow()
  26   { setSize(200,400);setVisible(true);
  27     Container con=getContentPane(); con.setLayout(new FlowLayout());
  28     button=new JButton("ok");text=new JTextArea(10,20);
  29     con.add(button);con.add(text);pack();
  30     addWindowListener(new WindowAdapter()
  31         {public void windowClosing(WindowEvent e)
  32            {System.exit(0);}
  33         }
);
  34   }

  35}

  36public class Example25_2
  37{  public static void main(String args[])
  38   { Mywindow win=new Mywindow();win.pack();
  39   }

  40}

  41
  42//例子3
  43import javax.swing.*;import java.awt.BorderLayout;
  44public class Example25_3 extends JApplet
  45{   JButton  button;   JTextArea  text;
  46    public void init()
  47   { button=new JButton("确定");text=new JTextArea();
  48     getContentPane().add(text,BorderLayout.CENTER); //小程序容器得到内容面板。
  49     getContentPane().add(button,BorderLayout.WEST);//并向内容面板中添加组件。
  50   }
 
  51}

  52
  53//例子4
  54import javax.swing.*;import java.awt.*;import java.awt.event.*;
  55class Dwindow extends JFrame //建立根窗体用的类。
  56{  JButton button1,button2;
  57   Dwindow(String s)
  58   {  super(s);
  59      Container con=getContentPane();  
  60      button1=new JButton("打开"); button2=new JButton("关闭");
  61      con.add(button1);con.add(button2);pack();
  62      setVisible(true);
  63      addWindowListener(new WindowAdapter()
  64        {  public void windowClosing(WindowEvent e)
  65           {System.exit(0);}
  66           }
);
  67   }

  68}

  69class Mydialog extends JDialog //建立对话框类。
  70{  JButton  button1,button2; 
  71   Mydialog(JFrame F,String s)   //构造方法。
  72   { super(F,s);
  73     button1=new JButton("open");     button2=new JButton("close"); 
  74     setSize(90,90);setVisible(true);setModal(false); 
  75     Container con=getContentPane();con.setLayout(new FlowLayout());
  76     con.add(button1);con.add(button2);
  77     addWindowListener(new WindowAdapter()
  78       {  public void windowClosing(WindowEvent e)
  79          {System.exit(0);}}
);
  80   }

  81}

  82public class Example25_4 extends JApplet
  83{  Dwindow window;  Mydialog dialog;  JButton button;
  84   public void init()
  85   {  window=new Dwindow("带对话框窗口");//创建窗口。
  86      dialog=new Mydialog(window,"我是对话框");  //创建依赖于窗口window的对话框。
  87      button=new JButton("ok");  getContentPane().add(button);
  88   }

  89}

  90
  91//例子5
  92import javax.swing.*;import java.awt.*;import java.awt.event.*;
  93class Myframe extends JFrame implements ActionListener
  94{  JButton button;JTextArea text;
  95   Myframe()
  96   {  setSize(200,400);setVisible(true);
  97      Container con=getContentPane(); 
  98      con.setLayout(new FlowLayout());
  99      button=new JButton("ok");text=new JTextArea(10,20);
 100      con.add(button);con.add(text);
 101      button.addActionListener(this);
 102      addWindowListener(new WindowAdapter()
 103       public void windowClosing(WindowEvent e)
 104         {System.exit(0);}}
);
 105   }

 106   public void actionPerformed(ActionEvent e)
 107   {  if(e.getSource()==button)
 108      text.setText("i am a boy,and you?");
 109   }

 110}

 111public class Example25_5
 112{  public static void main(String args[])
 113   {  Myframe fr=new Myframe();fr.pack();
 114   }

 115}

 116
 117//例子6
 118 import javax.swing.*; import java.awt.*;
 119class Mycanvas extends JPanel
 120{  public void paintComponent(Graphics g)
 121   { super.paintComponent(g);
 122     g.setColor(Color.red);  g.drawString("a Jpanel used as canvas",50,50);
 123   }

 124}

 125public class Example25_6 extends JApplet
 126{  Mycanvas canvas; JPanel panel;JButton button;
 127   public void init()
 128   {  canvas=new Mycanvas();panel=new JPanel();button=new JButton("ok");
 129      panel.add(button); Container con=getContentPane();
 130      con.add(panel,BorderLayout.NORTH); con.add(canvas,BorderLayout.CENTER); 
 131   }

 132}

 133
 134//例子7
 135import javax.swing.*;import java.awt.*;import java.awt.event.*;
 136class Mywindow extends JFrame
 137{  JButton button;JTextArea text;JScrollPane scroll;
 138   Mywindow()
 139   {  setSize(200,400);setVisible(true);
 140      Container con=getContentPane(); 
 141      button=new JButton("ok");text=new JTextArea(10,20);
 142      scroll=new JScrollPane(text);
 143      con.add(button,BorderLayout.SOUTH);con.add(scroll,BorderLayout.CENTER);
 144      addWindowListener(new WindowAdapter()
 145      {public void windowClosing(WindowEvent e)
 146        {System.exit(0);}}
);
 147   }

 148}

 149public class Example25_7
 150{  public static void main(String args[])
 151   {  Mywindow win=new Mywindow();win.pack();
 152   }

 153}

 154
 155//例子8
 156import javax.swing.*;import java.awt.*;import java.awt.event.*;
 157class Mywindow extends JFrame
 158{  JButton button1,button2;JTextArea text;JSplitPane split_one,split_two;
 159   Mywindow()
 160   {  setSize(200,400);setVisible(true); Container con=getContentPane(); 
 161      button1=new JButton("ok"); button2=new JButton("No");
 162      text=new JTextArea("I love you,java",10,20);
 163      split_one=new JSplitPane(JSplitPane.VERTICAL_SPLIT,button1,button2);
 164      split_two=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,split_one,text);
 165      con.add(split_two,BorderLayout.CENTER);
 166      addWindowListener(new WindowAdapter()
 167        {public void windowClosing(WindowEvent e)
 168        {System.exit(0);}}
);
 169   }

 170}

 171public class Example25_8
 172{  public static void main(String args[])
 173   { Mywindow win=new Mywindow();win.pack();
 174   }

 175}

 176
 177//例子9
 178import javax.swing.*;
 179import java.awt.*;
 180import java.awt.event.*;
 181class Mywindow extends JFrame
 182{  JButton button1,button2;
 183   JInternalFrame interframe_1,
 184                interframe_2;
 185   Mywindow()
 186   { setSize(200,200); setVisible(true); 
 187     Container con=getContentPane();
 188     con.setLayout(new GridLayout(1,2)); 
 189     button1=new JButton("Boy");  button2=new JButton("Girl");
 190     interframe_1=
 191     new JInternalFrame("内窗体1",true,true,true,true);
 192     interframe_1.setSize(100,100);interframe_1.setVisible(true);
 193     interframe_1.getContentPane().add(button1);
 194     JDesktopPane  desk1=new JDesktopPane();
 195     desk1.add(interframe_1);
 196     interframe_2=new JInternalFrame("内窗体2",true,true,true,true);
 197     interframe_2.setSize(300,150);interframe_2.setVisible(true);
 198     interframe_2.getContentPane().add(button2,BorderLayout.CENTER);
 199     interframe_2.getContentPane().add(new JLabel("ookk"),BorderLayout.NORTH); 
 200     JDesktopPane  desk2=new JDesktopPane();
 201     desk2.add(interframe_2);
 202     con.add(desk1);con.add(desk2);
 203     addWindowListener(new WindowAdapter()
 204      {public void windowClosing(WindowEvent e)
 205        {System.exit(0);}}
);
 206   }

 207}

 208public class Exam25_9
 209public static void main(String args[])
 210  { Mywindow win=new Mywindow();win.pack();
 211  }

 212}

 213
 214//例子10
 215import javax.swing.*; import java.awt.*
 216import java.awt.event.*;
 217class MyWin extends JFrame 
 218{ JButton b1,b2,b3; 
 219  public  MyWin()
 220  { setBounds(100,100,300,200); setVisible(true);
 221    addWindowListener(new WindowAdapter()
 222      {  public void windowClosing(WindowEvent e)
 223         {  System.exit(0);
 224         }

 225      }
);
 226    b1=new JButton("按钮1",new ImageIcon("f:/2000/a1.gif"));
 227    b2=new JButton("按钮2",new ImageIcon("f:/2000/a2.gif"));
 228    b3=new JButton("按钮3",new ImageIcon("f:/2000/a3.gif"));
 229    b1.setRolloverIcon(b2.getIcon());
 230    b2.setRolloverIcon(b3.getIcon());
 231    b3.setRolloverIcon(b1.getIcon());
 232    b1.setHorizontalTextPosition(AbstractButton.LEFT);
 233    b1.setVerticalTextPosition(AbstractButton.TOP);
 234    b2.setHorizontalTextPosition(AbstractButton.RIGHT);
 235    b2.setVerticalTextPosition(AbstractButton.BOTTOM);
 236    b3.setHorizontalTextPosition(AbstractButton.CENTER);
 237    b3.setVerticalTextPosition(AbstractButton.CENTER);
 238    Container con=getContentPane(); 
 239    con.setLayout(new FlowLayout());
 240    con.add(b1);con.add(b2); con.add(b3); 
 241    con.validate();
 242  }

 243}

 244public class Example25_10 
 245{  public static void main(String args[])
 246  {  new MyWin();
 247  }

 248}

 249
 250//例子11
 251import javax.swing.*;import java.awt.BorderLayout;
 252import java.awt.event.*;import java.awt.*;
 253public class Example25_11 extends JApplet implements ActionListener 
 254{  JLabel label_1,label_2;JButton button;JTextArea text;
 255   public void init()
 256   { button=new JButton("确定");text=new JTextArea();
 257     Icon icon=new ImageIcon("tom.jpg");
 258     label_1=new JLabel("标签1",icon,JLabel.CENTER); 
 259     label_2=new JLabel("标签2");
 260     getContentPane().add(text,BorderLayout.CENTER); 
 261     getContentPane().add(button,BorderLayout.WEST); 
 262     getContentPane().add(label_1,BorderLayout.NORTH);
 263     getContentPane().add(label_2,BorderLayout.SOUTH);
 264     button.addActionListener(this);
 265   }
 
 266   public void actionPerformed(ActionEvent e)
 267   { button.setIcon(label_1.getIcon());
 268     label_1.setHorizontalTextPosition(JLabel.LEFT); 
 269   }

 270 }

 271
 272//例子12
 273import javax.swing.*
 274import java.awt.*;
 275import java.awt.event.*;
 276import javax.swing.border.*;
 277class 候选人 extends JCheckBox 
 278{  int 得票数=0;
 279  候选人(String name,Icon icon)
 280  {  super(name,icon);
 281  }

 282 public int 获取得票数()
 283  {  return 得票数;
 284  }

 285 public void 增加票数()
 286  {  得票数++;
 287  }

 288}

 289
 290class MyWin extends JFrame implements ActionListener
 291{   Box baseBox,boxH,boxV;
 292  JTextArea text; 
 293  JButton button;
 294  候选人 候选人1, 候选人2, 候选人3; 
 295  public  MyWin()
 296  {  setBounds(100,100,300,200);
 297    setVisible(true);
 298    addWindowListener(new WindowAdapter()
 299      public void windowClosing(WindowEvent e)
 300         {  System.exit(0);
 301         }

 302      }
);
 303    baseBox=Box.createHorizontalBox();
 304    boxH=Box.createHorizontalBox();
 305    boxV=Box.createVerticalBox();
 306    候选人1=new 候选人("张小兵",new ImageIcon("a1.gif"));
 307    候选人2=new 候选人("李大营",new ImageIcon("a2.gif"));
 308    候选人3=new 候选人("王中堂",new ImageIcon("a3.gif"));
 309    候选人1.setSelectedIcon(new ImageIcon("b1.gif"));
 310    候选人2.setSelectedIcon(new ImageIcon("b2.gif"));
 311    候选人3.setSelectedIcon(new ImageIcon("b3.gif"));
 312    boxH.add(候选人1);  boxH.add(候选人2);  boxH.add(候选人3);
 313    text=new JTextArea();
 314    button=new JButton("显示得票数");
 315    button.addActionListener(this);
 316    boxV.add(text);  boxV.add(button);  baseBox.add(boxH);
 317    baseBox.add(boxV);
 318    Container con=getContentPane(); 
 319    con.setLayout(new FlowLayout());
 320    con.add(baseBox); 
 321    con.validate();
 322  }

 323 public void actionPerformed(ActionEvent e)
 324  {   text.setText(null);
 325   if(候选人1.isSelected())
 326      {    候选人1.增加票数();
 327      }

 328   if(候选人2.isSelected())
 329      {  候选人2.增加票数();
 330      }

 331   if(候选人3.isSelected())
 332      {  候选人3.增加票数();
 333      }

 334   text.append("\n"+候选人1.getText()+":"+候选人1.获取得票数());
 335   text.append("\n"+候选人2.getText()+":"+候选人2.获取得票数());
 336   text.append("\n"+候选人3.getText()+":"+候选人3.获取得票数());
 337   候选人1.setSelected(false);   候选人2.setSelected(false);
 338   候选人3.setSelected(false);
 339  }

 340}

 341public class Example25_12 
 342{  public static void main(String args[])
 343  {  new MyWin();
 344  }

 345}

 346
 347//例子13
 348import javax.swing.*;
 349import java.awt.*;import java.awt.event.*;
 350class Mywindow extends JFrame implements ItemListener
 351{  JRadioButton button1,button2,button3;ButtonGroup fruit;
 352   JLabel label ;JScrollPane scroll;JPanel panel;JSplitPane split;
 353   Mywindow()
 354   {  setSize(200,400);setVisible(true);
 355      Container con=getContentPane();  
 356      fruit=new ButtonGroup();
 357      button1=new JRadioButton("苹果");
 358      fruit.add(button1);
 359      button2=new JRadioButton("香蕉");
 360      fruit.add(button2);
 361      button3=new JRadioButton("西瓜");
 362      fruit.add(button3);
 363      label=new JLabel();panel=new JPanel();
 364     scroll=new JScrollPane(label);
 365     panel.add(button1);panel.add(button2);panel.add(button3);
 366     split=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,panel, scroll);
 367     con.add(split);
 368     button1.addItemListener(this);button2.addItemListener(this);
 369     button3.addItemListener(this);
 370     addWindowListener(new WindowAdapter()
 371      {public void windowClosing(WindowEvent e)
 372        {System.exit(0);}}
);
 373   }

 374   public void itemStateChanged(ItemEvent e)
 375   {if(e.getItemSelectable()==button1)
 376    {label.setIcon(new ImageIcon("a.jpg")); }
 377   else if(e.getItemSelectable()==button2)
 378    {label.setIcon(new ImageIcon("b.jpg")); }
 379   else if(e.getItemSelectable()==button3)
 380    {label.setIcon(new ImageIcon("c.jpg")); }
 381   }

 382}

 383public class Example25_13
 384public static void main(String args[])
 385  { Mywindow win=new Mywindow();win.pack();
 386  }

 387}

 388
 389//例子14
 390import javax.swing.*;import java.awt.*;import java.awt.event.*; import java.net.*;
 391public class Example25_14 extends JApplet implements ItemListener
 392{  JComboBox choice1,choice2; JSplitPane split1,split2;
 393   JLabel label; URL url;
 394   public void init()
 395   { Container con=getContentPane(); String[] s={"苹果""香蕉" ,"西瓜"};
 396    choice1=new JComboBox(s);choice2=new JComboBox();
 397    label=new JLabel();choice2.setEditable(true);
 398    split1=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,choice1,choice2);
 399    split2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,split1,label);
 400    choice1.addItemListener(this);choice2.addItemListener(this);con.add(split2);
 401   }
   
 402   public void itemStateChanged(ItemEvent e)
 403   if(e.getItemSelectable()==choice1)
 404        if(choice1.getSelectedIndex()==0)
 405         { label.setIcon(new ImageIcon("a.jpg"));}
 406         else if(choice1.getSelectedIndex()==1)
 407         { label.setIcon(new ImageIcon("b.jpg")); } 
 408         else if(choice1.getSelectedIndex()==2)
 409         {label.setIcon(new ImageIcon("c.jpg"));} 
 410       }
      
 411    else if(e.getItemSelectable()==choice2) 
 412       try{url=new URL((String)choice2.getSelectedItem());
 413              label.setText("你正在连接到:"+choice2.getSelectedItem());
 414            }

 415         catch(MalformedURLException g)
 416            { label.setText("不正确的URL:"+url); 
 417            }

 418             getAppletContext().showDocument(url);
 419      }

 420   }

 421}

 422
 423//例子15
 424import javax.swing.*;
 425import javax.swing.text.*;
 426import java.awt.*;
 427class DigitDocumnet extends PlainDocument
 428public void insertString(int offset ,String s,AttributeSet a)
 429     {  char c=s.charAt(0);
 430      if ((c<='9'&&c>='0')||(c=='.'))
 431        try {super.insertString(offset,s,a);}
 432         catch(BadLocationException e){}
 433        }

 434     }

 435}

 436public class DigitText extends JApplet
 437{ JTextField text=null;
 438  DigitDocumnet document=new DigitDocumnet();
 439   public void init()
 440    { text=new JTextField(30);
 441      Container con= getContentPane();
 442      con.setLayout(new FlowLayout());
 443      text.setDocument(document);
 444      con.add(text);
 445    }

 446}

 447
 448//例子16
 449import javax.swing.*;
 450import javax.swing.text.*;
 451import java.awt.*;
 452public class Example25_16 extends JApplet
 453{ JTextPane textpane;
 454   public void init()
 455  { textpane=new JTextPane();//创建文本窗格。
 456    getContentPane().add(textpane);
 457  }
 
 458}

 459
 460//例子17
 461import javax.swing.*;import javax.swing.text.*;
 462import java.awt.*;
 463public class Example25_17 extends JApplet 
 464 { JTextPane textpane;
 465    MutableAttributeSet center_align,char_style;
 466    public void init()
 467    { textpane=new JTextPane();//创建文本窗格。
 468JScrollPane scroll=
 469new ScrollPane(textpane,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
 470                                      JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
 471         center_align=new SimpleAttributeSet();
 472         char_style=new SimpleAttributeSet();  //创建属性对象。
 473         StyleConstants.setAlignment(center_align,StyleConstants.ALIGN_CENTER);
 474         StyleConstants.setFontFamily( char_style,"Serif");
 475         StyleConstants.setFontSize(char_style,70);
 476         StyleConstants.setForeground(char_style,Color.red);//为属性对象指定值
 477         textpane.setParagraphAttributes(center_align,true);//文本窗格设置文本的属性
 478         textpane.setCharacterAttributes(char_style,true);
 479         getContentPane().add(scroll);
 480    }
 
 481}

 482
 483//例子18
 484import javax.swing.*;import javax.swing.text.*;
 485import java.awt.*;
 486public class Example25_18 extends JApplet 
 487{  JTextPane textpane;
 488   MutableAttributeSet center_align,char_style_1,char_style_2;
 489   public void init()
 490   { textpane=new JTextPane();//创建文本窗口
 491     JScrollPane scroll=new 
 492     JScrollPane(textpane,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
 493     JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
 494     Document mydocument=textpane.getDocument();//初始化一个文档。
 495     center_align=new SimpleAttributeSet();
 496     char_style_1=new SimpleAttributeSet(); 
 497     char_style_2=new SimpleAttributeSet();  
 498     StyleConstants.setAlignment(center_align,StyleConstants.ALIGN_CENTER);
 499     StyleConstants.setFontFamily( char_style_1,"Courier");
 500     StyleConstants.setFontSize(char_style_1,20);
 501     StyleConstants.setForeground(char_style_1,Color.red);
 502     StyleConstants.setFontFamily( char_style_2,"Serif");
 503     StyleConstants.setFontSize(char_style_2,14);
 504     StyleConstants.setForeground(char_style_2,Color.blue);
 505     textpane.setParagraphAttributes(center_align,true);
 506     textpane.setCharacterAttributes(char_style_1,true);
 507     try{  textpane.insertIcon(new ImageIcon("a.jpg"));
 508     mydocument.insertString(mydocument.getLength(),"Lovely Apple\n",char_style_1);
 509        }

 510    catch(BadLocationException e) {} 
 511    textpane.setParagraphAttributes(center_align,true);
 512    textpane.setCharacterAttributes(char_style_2,true);
 513    try{ mydocument.insertString(mydocument.getLength(),
 514                               "I Want It\n",char_style_2);
 515        }

 516    catch(BadLocationException e)  {} 
 517    getContentPane().add(scroll);
 518   }
 
 519}

 520
 521//例子19
 522import javax.swing.*;
 523import javax.swing.text.*;
 524import java.awt.*;import java.io.*;
 525public class Example25_19 extends JApplet 
 526{ JTextPane textpane;FileInputStream readfile;
 527  public void init()
 528  { textpane=new JTextPane();//创建文本窗口
 529    JScrollPane scroll=new JScrollPane(textpane);
 530    try{ readfile=new FileInputStream("Example25_19.java");   
 531       }

 532    catch(IOException ee){}
 533     try{textpane.read(readfile,this);
 534        }

 535     catch(Exception e)
 536      {} 
 537     getContentPane().add(scroll);
 538  }
 
 539}

 540
 541//例子20
 542import javax.swing.*;import java.awt.*;
 543import java.awt.event.*;import java.io.*;
 544class FileWin extends JFrame implements ActionListener
 545{ JButton button; JTextArea text;JTextPane textpane;FileInputStream readfile;
 546  JScrollPane scroll;Container con;
 547  JFileChooser chooser=new JFileChooser();
 548 FileWin()
 549   { super("有文件选择器的窗口");
 550     button=new JButton("打开文件选取器");
 551     button.addActionListener(this);
 552     textpane=new JTextPane();
 553     scroll=new JScrollPane(textpane);
 554     setSize(200,200); setVisible(true);
 555     addWindowListener(new WindowAdapter()
 556            {public void windowClosing(WindowEvent e)
 557                 { System.exit(0);}}
 );
 558      con=getContentPane();con.add(button,BorderLayout.NORTH);
 559      con.add(scroll,BorderLayout.CENTER); 
 560   }

 561 public void actionPerformed(ActionEvent e)
 562  {if(e.getSource()==button)
 563    {String s;
 564     int state=chooser.showOpenDialog(null);
 565     File file=chooser.getSelectedFile();
 566     if(file!=null&&state==JFileChooser.APPROVE_OPTION)
 567     try{ readfile=new FileInputStream(file); //建立到文件的输入流。 
 568          }

 569       catch(IOException ee){}
 570       try{  textpane.read(readfile,this);//从流中读取数据。
 571          }

 572      catch(IOException e1){}
 573     }

 574    }

 575  }

 576}
 
 577public class Example25_20
 578{public static void main(String args[])
 579 {FileWin Win=new FileWin(); Win.pack();  }
 580}

 581
 582//例子21
 583import javax.swing.*;
 584import java.awt.*;import java.awt.event.*;
 585class TimeWin extends JFrame implements ActionListener
 586static JTextArea text1,text2; Boy boy=new Boy();
 587   JScrollPane scroll_1,scroll_2;Container con;
 588   Timer time_1,time_2 ;   //声明2个计时器对象。
 589   JSplitPane splitpane;
 590 TimeWin()
 591   {super("有计时器窗口");
 592    time_1=new Timer(1000,this);//TimeWin对象做计时器的监视器。
 593    time_2=new Timer(2000,boy);//Boy对象做计时器的监视器。
 594    text1=new JTextArea(); text2=new JTextArea();
 595    scroll_1=new JScrollPane(text1);
 596    scroll_2=new JScrollPane(text2);
 597    splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,scroll_1,
 598                          scroll_2);
 599    setSize(200,200);
 600    setVisible(true);
 601    con=getContentPane();con.add(splitpane);
 602    time_1.start();time_2.start();//启动计时器。
 603    addWindowListener(new WindowAdapter()
 604     {public void windowClosing(WindowEvent e)
 605       { System.exit(0);}}
 );
 606   }

 607  public void actionPerformed(ActionEvent e) 
 608  {text1.append("欢迎光临!"+"\n"); }
 609}
 
 610class Boy implements ActionListener
 611public void actionPerformed(ActionEvent e)
 612  { TimeWin.text2.append("再见!"+"\n");  }
 613}

 614public class Example25_21
 615{public static void main(String args[])
 616 {TimeWin Win=new TimeWin(); Win.pack();  }
 617}

 618
 619//例子22
 620import javax.swing.*;import java.awt.*;
 621import java.awt.event.*;
 622class BarWin extends JFrame implements ActionListener
 623{  Timer time_1;  int sum=0,i=1;
 624   JProgressBar p_bar;Container con;
 625 BarWin()
 626   {super("窗口");
 627    time_1=new Timer(1000,this);//TimeWin对象做计时器的监视器,每
 628                                  //1000毫秒震铃一次。
 629    p_bar=new JProgressBar(0,55); 
 630    p_bar.setBackground(Color.white);
 631    p_bar.setStringPainted(true);
 632    setSize(200,200);
 633    setVisible(true);
 634    con=getContentPane();con.add(p_bar,BorderLayout.NORTH);
 635    time_1.start();
 636    addWindowListener(new WindowAdapter()
 637     {public void windowClosing(WindowEvent e)
 638       { System.exit(0);}}
 );
 639     }

 640  public void actionPerformed(ActionEvent e)
 641  {  sum=sum+i; 
 642     p_bar.setValue(sum);//吃掉sum/55
 643     i=i+1;
 644     if(sum>=55)
 645     time_1.stop();
 646  }

 647}
 
 648public class Example25_22
 649{public static void main(String args[])
 650 {BarWin Win=new BarWin(); Win.pack();  }
 651}

 652
 653//例子23
 654import javax.swing.*;
 655import java.io.*;import java.awt.*;import java.awt.event.*;
 656public class Example25_23
 657public static void main(String args[])
 658  byte b[]=new byte[30];
 659    JTextArea text=new JTextArea(20,20);
 660    JFrame  jframe=new JFrame();
 661    jframe.setSize(200,300);jframe.setBackground(Color.blue);
 662    jframe.setVisible(true);
 663    jframe.addWindowListener(new WindowAdapter()
 664         {public void windowClosing(WindowEvent e)
 665            {System.exit(0);} }
);
 666    Container contentpane=jframe.getContentPane();
 667    contentpane.add(text,BorderLayout.CENTER);
 668   
 669 try{  FileInputStream input=new FileInputStream("Example25_23.java");
 670        ProgressMonitorInputStream input_progress=
 671           new ProgressMonitorInputStream(contentpane,"读取java文件",input);
 672       ProgressMonitor p=input_progress.getProgressMonitor();//获得进度条。
 673       while(input_progress.read(b)!=-1)
 674          { String s=new String(b);
 675            text.append(s);
 676            Thread.sleep(1000);//由于文件较小,为了看清进度条这里有意延缓1秒。
 677          }

 678     }

 679     catch(InterruptedException e){}
 680     catch(IOException e){}
 681  }

 682}

 683
 684//例子24
 685import javax.swing.*;import java.awt.*;
 686import java.awt.event.*;
 687public class Example25_24 extends JFrame implements ActionListener
 688{  JTable table;Object a[][];
 689   Object name[]={"姓名","英语成绩","数学成绩","总成绩"};
 690   JButton button;
 691   Example25_24()
 692   { a=new Object[8][4];
 693     for(int i=0;i<8;i++)
 694      for(int j=0;j<4;j++)
 695          {if(j!=0)
 696             a[i][j]="0";
 697           else
 698             a[i][j]="姓名";
 699          }

 700      }

 701     button=new JButton("计算每人总成绩");
 702     table=new JTable(a,name);
 703     button.addActionListener(this);
 704     getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);
 705getContentPane().add(new JLabel("修改或录入数据后,需回车确认"),BorderLayout.SOUTH);
 706     getContentPane().add(button,BorderLayout.SOUTH);
 707     setSize(200,200);
 708     setVisible(true);
 709     validate();
 710     addWindowListener(new WindowAdapter()
 711            {public void windowClosing(WindowEvent e)
 712                   { System.exit(0);
 713                   }

 714            }
);
 715  }
 
 716  public void actionPerformed(ActionEvent e)
 717  {  for(int i=0;i<8;i++)
 718      double sum=0;
 719        boolean boo=true;
 720        for(int j=1;j<=2;j++)
 721          {  try{
 722                  sum=sum+Double.parseDouble(a[i][j].toString());
 723                }

 724             catch(Exception ee)
 725               {
 726                  boo=false;
 727                  table.repaint();
 728               }

 729             if(boo==true)
 730              {
 731                a[i][3]=""+sum;
 732                table.repaint();
 733              }

 734          }

 735      }
 
 736   }

 737   public static void main(String args[])
 738   {  Example25_24 Win=new Example25_24();  
 739   }

 740}

 741
 742//例子25
 743import javax.swing.*;
 744import java.awt.event.*;
 745import java.sql.*;
 746import java.awt.*;
 747 class ResultWin extends JFrame implements ActionListener
 748{  Object a[][];
 749   Object columnName[]={"学号","姓名","出生日期","数学","物理","英语"}
 750   JTable table;JButton button;
 751   Container container; 
 752   String name,xuehao;Date date; int math,physics,english;
 753   Connection con;Statement sql; ResultSet rs; 
 754   JProgressBar p_bar; 
 755  ResultWin()
 756  {  super("数据查询");
 757     a=new Object[30][6];
 758     table=new JTable(a,columnName);
 759     setSize(300,300);setVisible(true);
 760     button=new JButton("确定");
 761     addWindowListener(new WindowAdapter()
 762     {public void windowClosing(WindowEvent e)
 763       { System.exit(0);}}
 ); 
 764     button.addActionListener(this);
 765     p_bar=new JProgressBar(JProgressBar.VERTICAL,0,50);
 766     p_bar.setStringPainted(true) ; 
 767     container=getContentPane();
 768     container.add(button,BorderLayout.SOUTH);
 769     container.add(new JScrollPane(table),BorderLayout.CENTER);
 770     container.add(p_bar,BorderLayout.WEST);  
 771    }

 772 public void actionPerformed(ActionEvent evt)
 773  {if(evt.getSource()==button)
 774   {int i=0;
 775    try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");  }
 776    catch(ClassNotFoundException e){}
 777    try
 778{con=DriverManager.getConnection("jdbc:odbc:redsun","snow","ookk");
 779       sql=con.createStatement();
 780       rs=sql.executeQuery("SELECT * FROM chengjibiao");
 781       while(rs.next())
 782       { xuehao=rs.getString(1); name=rs.getString(2);date=rs.getDate(3); 
 783         math=rs.getInt("数学"); physics=rs.getInt("物理");english=rs.getInt("英语");
 784        a[i][0]=xuehao;a[i][1]=name;a[i][2]=date;a[i][3]=String.valueOf(math);
 785        a[i][4]=String.valueOf(physics);a[i][5]=String.valueOf(english);
 786        i++;
 787        p_bar.setValue(i);p_bar.setString("查询了"+i+"条记录");
 788       }
 
 789      con.close();
 790     }

 791    catch(SQLException e1) {}
 792   }
   
 793  }
 
 794}

 795public class Example25_25
 796public static void main(String args[])
 797  {ResultWin win=new ResultWin(); win.pack(); }
 798}

 799
 800//例子26
 801import javax.swing.*;
 802import java.awt.*;
 803import java.awt.event.*
 804public class Example24_26 extends JApplet 
 805{ Container con; 
 806  public void init()
 807 {con=getContentPane();  
 808  JMenuBar menubar=new JMenuBar();
 809  con.add(menubar,BorderLayout.NORTH);
 810  JMenu fileMenu=new JMenu("文件"); 
 811  JMenu editMenu=new JMenu("编辑");
 812  JMenu helpMenu=new JMenu("帮助");
 813  JMenuItem item1=new JMenuItem("打开");
 814  JMenuItem  item2=new JMenuItem("保存"); //创建6个菜单项。
 815  fileMenu.add(item1); fileMenu.add(item2);
 816  menubar.add(fileMenu);  menubar.add(editMenu); 
 817  menubar.add(helpMenu); 
 818 }

 819}

 820
 821//例子27
 822import javax.swing.*;import java.awt.*;
 823import java.awt.event.*
 824class ToolWin extends JFrame implements ActionListener
 825{ JButton button1,button2; JToolBar bar; Container con;
 826 ToolWin() 
 827 {con=getContentPane();
 828  setSize(300,250);setVisible(true);  
 829  Icon open_icon =new ImageIcon("open.gif");
 830  Icon save_icon =new ImageIcon("save.gif");
 831  button1=new JButton(open_icon); button2=new JButton(save_icon);
 832  bar=new JToolBar();//工具条对象
 833  bar.add(button1);bar.add(button2);
 834  con.add(bar,BorderLayout.NORTH);
 835  button1.addActionListener(this);
 836  button1.setToolTipText("open");//设置组件的提示文字
 837  button2.setToolTipText("save");
 838 }

 839 public void actionPerformed(ActionEvent e)
 840 {if(e.getSource()==button1)
 841  {JFileChooser c=new JFileChooser();
 842    c.showOpenDialog(null);  
 843  }

 844 }

 845}

 846public class Example25_27
 847{static void main(String args[])
 848 {ToolWin win=new ToolWin() ;win.pack();}
 849}

 850
 851//例子28
 852import javax.swing.*;import javax.swing.tree.*;
 853import java.awt.*;
 854public class Mytree extends JApplet
 855public void init()
 856  {Container con=getContentPane();
 857   DefaultMutableTreeNode root=new DefaultMutableTreeNode("c:\\");//树的根节点。
 858   DefaultMutableTreeNode t1=new DefaultMutableTreeNode("dos");//节点。
 859   DefaultMutableTreeNode t2=new DefaultMutableTreeNode("java");//节点。
 860   DefaultMutableTreeNode t1_1=new DefaultMutableTreeNode("applet");
 861   DefaultMutableTreeNode t1_2=new DefaultMutableTreeNode("jre");
 862   root.add(t1);root.add(t2);
 863   t1.add(t1_1);t1.add(t1_2);//t1_1,t1_2成为t1的子节点。
 864   JTree tree =new JTree(root); //创建根为root的树。
 865   JScrollPane scrollpane=new JScrollPane(tree);
 866   con.add(scrollpane);
 867  }

 868}

 869
 870//例子29
 871import javax.swing.*;
 872import javax.swing.tree.*;import java.awt.*;
 873import java.awt.event.*;import javax.swing.event.*;
 874public class Mytree2 extends JFrame implements TreeSelectionListener
 875{  JTree tree=null;JTextArea text=new JTextArea(20,20);
 876  Mytree2()
 877  {Container con=getContentPane();
 878   DefaultMutableTreeNode root=new DefaultMutableTreeNode("同学通讯录");
 879   DefaultMutableTreeNode t1=new DefaultMutableTreeNode("大学同学");
 880   DefaultMutableTreeNode t2=new DefaultMutableTreeNode("研究生同学");
 881   DefaultMutableTreeNode t1_1=new DefaultMutableTreeNode("董明光");
 882   DefaultMutableTreeNode t1_2=new DefaultMutableTreeNode("李晓");
 883   DefaultMutableTreeNode t2_1=new DefaultMutableTreeNode("王光明");
 884   DefaultMutableTreeNode t2_2=new DefaultMutableTreeNode("代学才");
 885   root.add(t1);root.add(t2);
 886   t1.add(t1_1);t1.add(t1_2);  t2.add(t2_1);t2.add(t2_2);
 887   tree =new JTree(root);
 888   JScrollPane scrollpane=new JScrollPane(text);
 889   JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
 890                            true,tree,scrollpane);
 891   tree.addTreeSelectionListener(this);   
 892   con.add(splitpane);
 893   addWindowListener(new WindowAdapter()
 894    public void windowClosing(WindowEvent e)
 895      {System.exit(0);} }
);
 896   setVisible(true);setBounds(70,80,200,300);
 897    }

 898 public void valueChanged(TreeSelectionEvent e)
 899  if(e.getSource()==tree)
 900     {DefaultMutableTreeNode node=
 901      (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
 902      if(node.isLeaf())
 903        { String str=node.toString();
 904           if(str.equals("董明光"))
 905             {text.setText(str+":联系电话:0411-4209876");}
 906           else if(str.equals("李晓"))
 907             {text.setText(str+":联系电话:010-62789876");} 
 908           else if(str.equals("王光明"))
 909              {text.setText(str+":联系电话:0430-63596677");} 
 910           else if(str.equals("代学才"))
 911              {text.setText(str+":联系电话:020-85192789");} 
 912        }

 913      else 
 914       {text.setText(node.getUserObject().toString());
 915       }

 916     }

 917  }

 918}

 919class Example25_29
 920{public static void main(String args[])
 921  { Mytree2 win=new Mytree2();win.pack();} 
 922}

 923
 924//例子30
 925import javax.swing.*;import javax.swing.tree.*;
 926import java.awt.*;
 927public class Mytree3 extends JApplet
 928public void init()
 929  {Container con=getContentPane();
 930   DefaultMutableTreeNode root=new DefaultMutableTreeNode("c:\\");//树的根节点。
 931   DefaultMutableTreeNode t1=new DefaultMutableTreeNode("dos");//节点。
 932   DefaultMutableTreeNode t2=new DefaultMutableTreeNode("java");//节点。
 933   DefaultMutableTreeNode t1_1=new DefaultMutableTreeNode("wps");
 934   DefaultMutableTreeNode t1_2=new DefaultMutableTreeNode("epg");
 935   DefaultMutableTreeNode t2_1=new DefaultMutableTreeNode("applet");
 936   DefaultMutableTreeNode t2_2=new DefaultMutableTreeNode("jre");
 937   root.add(t1);root.add(t2);
 938   t1.add(t1_1);t1.add(t1_2);
 939   t2.add(t2_1);t2.add(t2_2);
 940   JTree tree =new JTree(root); //创建根为root的树。
 941   DefaultTreeCellRenderer render=new  DefaultTreeCellRenderer();
 942   render.setLeafIcon(new ImageIcon("leaf.gif"));
 943   render.setBackground(Color.yellow);
 944   render.setClosedIcon(new ImageIcon("close.gif"));
 945   render.setOpenIcon(new ImageIcon("open.gif"));
 946   render.setTextSelectionColor(Color.red);
 947   render.setTextNonSelectionColor(Color.green);
 948   render.setFont(new Font("TimeRoman",Font.BOLD,16));
 949   tree.setCellRenderer(render);
 950   JScrollPane scrollpane=new JScrollPane(tree);
 951   con.add(scrollpane);
 952  }

 953}

 954
 955//例子31
 956import javax.swing.*;
 957import javax.swing.tree.*;
 958import java.awt.*;
 959import java.awt.event.*;
 960import java.io.*;import java.util.*;
 961class Classmate extends JFrame 
 962{  JTree tree=null; DefaultMutableTreeNode root;
 963   BufferedReader in; FileReader file;
 964   Classmate()
 965   {  Container con=getContentPane();
 966      String s=null;
 967      try { File f=new File("通讯录.txt");
 968           file=new FileReader(f);
 969           in=new BufferedReader(file);
 970          }

 971      catch(FileNotFoundException e){}
 972      try { s=in.readLine();                //读取第一行并用它创建根节点。
 973           root=new DefaultMutableTreeNode(s);         
 974          }

 975      catch(IOException exp){}
 976      try
 977         {  while((s=in.readLine())!=null&&(s.startsWith("%"))) 
 978              { s=in.readLine();
 979                DefaultMutableTreeNode 同学种类=new DefaultMutableTreeNode(s); 
 980                root.add(同学种类);
 981                while((s=in.readLine())!=null&&!(s.startsWith("end")))
 982                     {  StringTokenizer tokenizer=new StringTokenizer(s,"#");
 983                        String temp=tokenizer.nextToken();
 984                        DefaultMutableTreeNode 同学种类_姓名
 985                        =new DefaultMutableTreeNode(temp);
 986                        同学种类.add(同学种类_姓名);
 987                         while(tokenizer.hasMoreTokens())
 988                         {
 989              同学种类_姓名.add(new DefaultMutableTreeNode(tokenizer.nextToken()));
 990                         }

 991                      }

 992              }
 
 993         }

 994       catch(IOException exp){}   
 995       tree =new JTree(root);
 996       JScrollPane scrollpane=new JScrollPane(tree);
 997       con.add(scrollpane);
 998       addWindowListener(new WindowAdapter()
 999               public void windowClosing(WindowEvent e)
1000               {System.exit(0);} }
);
1001       setVisible(true);setBounds(70,80,200,300);
1002   }

1003 }

1004public class Example31
1005public static void main(String args[])
1006   { Classmate win=new Classmate();win.pack();} 
1007}

1008
1009//例子32
1010import javax.swing.*;
1011import javax.swing.tree.*;
1012import java.awt.*;
1013import java.awt.event.*;
1014import javax.swing.event.*;
1015import java.io.*;
1016class Remember extends JFrame implements TreeSelectionListener,ActionListener
1017{  JTree tree=null;JTextArea text=new JTextArea(" ",20,20);int i=0;
1018   DefaultMutableTreeNode root;JButton b_save=new JButton("保存日志"),
1019   b_del=new JButton("删除日志");
1020   DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13];
1021   Remember()
1022   {  Container con=getContentPane();
1023      DefaultMutableTreeNode root=new DefaultMutableTreeNode("日历记事本");
1024      for(i=1;i<=12;i++)
1025          {  month[i]=new DefaultMutableTreeNode(""+i+"");
1026             root.add(month[i]); 
1027          }

1028      for(i=1;i<=12;i++)
1029      {  if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
1030          {  for(int j=1;j<=31;j++)
1031             month[i].add(new DefaultMutableTreeNode(j+""));
1032          }

1033         else if(i==4||i==6||i==9||i==11)
1034          {  for(int j=1;j<=30;j++)
1035                month[i].add(new DefaultMutableTreeNode(j+""));
1036          }

1037         else
1038         {  for(int j=1;j<=28;j++)
1039                month[i].add(new DefaultMutableTreeNode(j+""));
1040         }

1041      }

1042     b_save.addActionListener(this); b_del.addActionListener(this);
1043     tree =new JTree(root);
1044     JPanel p=new JPanel();p.setLayout(new BorderLayout());
1045     JScrollPane scrollpane_1=new JScrollPane(text);
1046     p.add(scrollpane_1,BorderLayout.CENTER);
1047     JPanel p_1=new JPanel();p_1.add(b_save);p_1.add(b_del);
1048     p.add(p_1,BorderLayout.NORTH);
1049     JScrollPane scrollpane_2=new JScrollPane(tree);
1050     JSplitPane splitpane=
1051   new SplitPane(JSplitPane.HORIZONTAL_SPLIT,true,scrollpane_2,p);
1052     tree.addTreeSelectionListener(this);   
1053     con.add(splitpane);
1054     addWindowListener(new WindowAdapter()
1055            {  public void windowClosing(WindowEvent e)
1056                         {System.exit(0);
1057                         }

1058            }
);
1059     setVisible(true);setBounds(70,80,200,300);
1060   }

1061   public void valueChanged(TreeSelectionEvent e)
1062   {  text.setText(" ");
1063      if(e.getSource()==tree)
1064        {  DefaultMutableTreeNode node=
1065           (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
1066           if(node.isLeaf())
1067              {  String str=node.toString();
1068                 for(int i=0;i<=12;i++)
1069                   {  if(node.getParent()==month[i])
1070                      try 
1071                           {  String temp=null;
1072                              File f=new File(node.getParent().toString()+str+".txt");
1073                              FileReader file=new FileReader(f);
1074                              BufferedReader in=new BufferedReader(file);
1075                              while((temp=in.readLine())!=null)
1076                                     text.append(temp+'\n'); 
1077                              file.close();in.close(); 
1078                            }

1079                         catch(FileNotFoundException e1){}
1080                         catch(IOException e1){}  
1081                       }
           
1082                   }

1083               }

1084        }

1085   }

1086   public void actionPerformed(ActionEvent e)
1087   {  if(e.getSource()==b_save)
1088        {  DefaultMutableTreeNode node=
1089          (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
1090          String str=node.toString();
1091          if(node.isLeaf())
1092            try
1093                 { File f=new File(node.getParent().toString()+str+".txt");
1094                   FileWriter tofile=new FileWriter(f);
1095                   BufferedWriter out=new BufferedWriter(tofile);
1096                   out.write(text.getText(),0,(text.getText()).length());
1097                   out.flush();
1098                   tofile.close();out.close(); 
1099                 }

1100               catch(FileNotFoundException e1){}
1101                catch(IOException e1){}   
1102             }

1103        }

1104      else if(e.getSource()==b_del)
1105       {  DefaultMutableTreeNode node=
1106          (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
1107          String str=node.toString();
1108          if(node.isLeaf())
1109            {
1110              File f=new File(node.getParent().toString()+str+".txt");
1111              f.delete();
1112            }

1113        }

1114   }

1115}

1116public class Example25_32
1117{  public static void main(String args[])
1118   {  Remember win=new Remember();win.pack();
1119   }
 
1120}

1121
posted @ 2005-05-27 14:32  Rookie.Zhang  阅读(1724)  评论(0编辑  收藏  举报