?? 第十五章例子.txt
字號:
15-例子1
import java.applet.*;import java.awt.*;
class Mywindow extends Frame
{ Mywindow(String s) //構造方法.
{ super(s); .
setLayout(new GridLayout(1,1));
setSize(60,70); setBackground(Color.blue);
setVisible(true); pack();
}
}
public class Example15_1 extends Applet
{ Mywindow window ; //聲明一個窗口對象。
public void init()
{ window=new Mywindow("世界之窗");//創建窗口。
}
}
15-例子2
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
class Yourwindow extends Frame
{
Yourwindow(String s, int a,int b) //構造方法。
{ super(s); //名字是字符串s。
setLayout(new GridLayout(1,1));// 把布局設置為GridLayout布局。
setSize(a,b); //把窗口的初始大小設置為a*b像素。
setBackground(Color.white); //把窗口的底色設置為白色。
setVisible(false); //把窗口設置為不可見的。
pack();//用緊湊方式顯示窗口。
}
}
public class Example15_2 extends Applet implements ActionListener
{ Yourwindow window1,window2 ; //聲明兩個窗口對象。
Button button1,button2,button3,button4;
public void init()
{ button1=new Button("開南窗"); button2=new Button("開北窗");
button3=new Button("關南窗"); button4=new Button("關北窗");
window1=new Yourwindow("陽光之窗",60,60);//創建窗口
window2=new Yourwindow("冰雪之窗",70,70);//創建窗口
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(this);
add(button1);add(button2);add(button3);add(button4);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ window1.setVisible(true);
}
else if(e.getSource()==button3)
{ window1.setVisible(false);
}
else if(e.getSource()==button2)
{ window2.setVisible(true);
}
else if(e.getSource()==button4)
{ window2.setVisible(false);
}
}
}
15-例子3
import java.awt.*;import java.awt.event.*;
public class Example15_3
{public static void main(String args[])
{Cwindow f=new Cwindow();
}
}
class Cwindow extends Frame implements ActionListener
{ Panel north_p=new Panel(),south_p=new Panel(),
center_p=new Panel();
TextField subject=new TextField(16);
TextField stu_number=new TextField(3);
TextField number[]=new TextField[50],
name[]=new TextField[50],
result[]=new TextField[50] ;
Button button=new Button("確認");
Button b1=new Button("確定"),b2=new Button("取消");
Statics other_window;
int people_number=0;
Cwindow()
{super("學生成績統計表");
other_window=new Statics();
setBounds(100,120,550,200);
setVisible(true);
south_p.setVisible(false);
center_p.setVisible(false);
Label 科目=new Label("考試科目:"),人數=new Label("考試人數(不超過50):"),
學號=new Label("學號:"),
姓名=new Label("姓名:"), 成績=new Label("成績:");
north_p.add(科目);north_p.add(subject); //添加到小程序北面的面板和
north_p.add(人數);north_p.add(stu_number); //該面板中添加的組件。
north_p.add(button);
button.addActionListener(this);
south_p.add(new Label("每行都必須輸入成績")) ; //添加到小程序南面的面板。
south_p.add(b1);south_p.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
center_p.setLayout(new GridLayout(51,3));//添加到小程序中心的面板和其中的組件。
center_p.add(學號); center_p.add(姓名); center_p.add(成績);
for(int i=0;i<=49;i++)
{number[i]=new TextField(""+(i+1));name[i]=new TextField("姓名");
result[i]=new TextField("0");
center_p.add(number[i]);center_p.add(name[i]);
center_p.add(result[i]);
}
ScrollPane p=new ScrollPane(); //添加到小程序中心的滾動窗體
p.add(center_p); //和其中的center_p面板。
add("North",north_p);add("Center",p);add("South",south_p);
addWindowListener(new WindowAdapter() //適配器(見15.5節)。
{public void windowClosing(WindowEvent e)
{setVisible(false);System.exit(0); }
});
pack();//用緊湊方式顯示窗口。
}
public void actionPerformed(ActionEvent e)
{if(e.getSource()==button) //輸入考試人數后,使用于輸入成績的界面變得可見。
{people_number=Integer.parseInt(stu_number.getText());
if(people_number<=50) //檢查輸入的人數是否越界。
{center_p.setVisible(true);south_p.setVisible(true);
for(int i=0;i<people_number;i++)
{number[i].setBackground(Color.pink);//根據考試人數,使活動狀態的
// 組件有特殊顏色。
name[i].setBackground(Color.cyan);
result[i].setBackground(Color.green);
number[i].setEnabled(true);//根據考試人數,確定出處于活動狀態的組件。
name[i].setEnabled(true);
result[i].setEnabled(true);
}
for(int i=people_number;i<50;i++)
{ number[i].setEnabled(false);//根據考試人數,確定出處于非活動狀態的組件。
name[i].setEnabled(false);
result[i].setEnabled(false);
number[i].setBackground(Color.white);
name[i].setBackground(Color.white);
result[i].setBackground(Color.white);
}
}
else {stu_number.setText("人數越界");}//提示人數越界。
}
else if(e.getSource()==b1)
{ other_window.setVisible(true); //使成績統計窗口可見。
int geshu_優=0,geshu_良=0,
geshu_及格=0 ,geshu_不及格=0;
double a[]=new double[50],sum=0;
for(int i=0;i<people_number;i++)
{ a[i]=Double.valueOf(result[i].getText().trim()).doubleValue();
if(a[i]>=90) {geshu_優++; }
if(a[i]<90&&a[i]>=80) {geshu_良++;}
if(a[i]<80&&a[i]>=60) {geshu_及格++;}
if(a[i]<60) {geshu_不及格++;}
sum=sum+a[i];
}
sum=sum/people_number; //平均成績。
other_window.text[0].setText(" "+people_number);
other_window.text[1].setText(" "+geshu_優);
other_window.text[2].setText(" "+geshu_良);
other_window.text[3].setText(" "+geshu_及格);
other_window.text[4].setText(" "+geshu_不及格);
other_window.text[5].setText(" "+sum);
}
else if(e.getSource()==b2)
{for(int i=0;i<=49;i++)
{number[i].setText(""+(i+1));name[i].setText(null);
result[i].setText("0");
}
}
}
}
class Statics extends Frame //成績統計表窗口。
{TextField text[]=new TextField[6];
Label 考試人數=new Label("考試人數:"),優秀=new Label("優秀人數:"),
良好=new Label("良好人數:"), 及格=new Label("及格人數:"),
不及格=new Label("不及格人數:"),平均=new Label("平均分數:");
Statics()
{super("成績統計結果表");
setLayout(new GridLayout(2,6));
add(考試人數);add(優秀);add(良好);add(及格);
add(不及格);add(平均);
setVisible(false);
setBounds(140,140,200,100);
for(int i=0;i<=5;i++)
{text[i]=new TextField();add(text[i]);
}
addWindowListener(new WindowAdapter() //適配器。
{public void windowClosing(WindowEvent e)
{setVisible(false); }
});
}
}
15-例子4
import java.applet.*;
import java.awt.*; import java.awt.event.*;
class Menuwindow extends Frame
{ MenuBar menubar; //聲明1個菜單條對象。
Menu menu1,menu2; //聲明2個菜單對象。
MenuItem item1,item2,item3,item4,item5,item6; //聲明6個菜單項對象。
TextArea text;
Menuwindow(String s, int a,int b) //構造方法,當創建窗口時
{ super(s); //窗口名字是字符串s,super()必需在第一句。
menubar=new MenuBar(); //創建一個菜單條。
menu1=new Menu("文件"); //創建2個菜單。
menu2=new Menu("編輯");
item1=new MenuItem("新建");item2=new MenuItem("保存");//創建6個菜單項。
item3=new MenuItem("打印");item4=new MenuItem("復制");
item5=new MenuItem("全選");item6=new MenuItem("粘貼");
text=new TextArea();
setLayout(new GridLayout(1,1)); // 把窗口布局設置為GridLayout布局。
setSize(a,b); //把窗口的初始大小設置為a*b像素。
setBackground(Color.white); //把窗口的底色設置為白色。
setVisible(false); //把窗口設置為不可見的。
menu1.add(item1);menu1.add(item2);
menu1.add(item3);menu2.add(item4); //菜單增加菜單項。
menu2.add(item5);menu2.add(item6);
menubar.add(menu1);menubar.add(menu2); //菜單條增加菜單。
setMenuBar(menubar); //窗口增加菜單條。
add(text); pack();//用緊湊方式顯示窗口。
}
}
public class Example15_4 extends Applet implements ActionListener
{ Menuwindow window ; //聲明一個窗口對象。
Button button1,button2;
public void init()
{ button1=new Button("打開窗"); button2=new Button("關閉窗");
window=new Menuwindow("音樂之窗",60,60);//創建窗口。
button1.addActionListener(this); button2.addActionListener(this);
add(button1);add(button2);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ window.setVisible(true);
}
else if(e.getSource()==button2)
{ window.setVisible(false);
}
}
}
15-例子5
import java.applet.*;import java.awt.*;import java.awt.event.*;
class Menuwindow extends Frame implements ActionListener
{ MenuBar menubar;
Menu menu1,menu2;
MenuItem item1,item2,item3,item4,item5,item6;
TextArea text;
Menuwindow(String s, int a,int b) //構造方法
{ super(s); //super()必需在第一句。
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("編輯");
item1=new MenuItem("新建");item2=new MenuItem("保存");
item3=new MenuItem("打印");item4=new MenuItem("復制");
item5=new MenuItem("全選");item6=new MenuItem("粘貼");
text=new TextArea();
setLayout(new GridLayout(1,1)); setSize(a,b);
setBackground(Color.white); setVisible(false);
menu1.add(item1);menu1.add(item2);
menu1.add(item3);menu2.add(item4);
menu2.add(item5);menu2.add(item6);
menubar.add(menu1);menubar.add(menu2);
setMenuBar(menubar);
add(text); pack();
item1.addActionListener(this); //把窗口作為菜單項的監視器。
item2.addActionListener(this); item3.addActionListener(this);
item4.addActionListener(this); item5.addActionListener(this);
item6.addActionListener(this);
}
public void actionPerformed(ActionEvent e)//實現接口中的方法。
{ if(e.getSource()==item1)
{ text.setText(item1.getLabel()); }
else if (e.getSource()==item2)
{ text.setText(item2.getLabel()); }
else if(e.getSource()==item3)
{ text.setText(item3.getLabel()); }
else if (e.getSource()==item4)
{ text.setText(item4.getLabel()); }
else if(e.getSource()==item5)
{ text.setText(item5.getLabel()); }
else if (e.getSource()==item6)
{ text.setText(item6.getLabel()); }
}
}
public class Example15_5 extends Applet implements ActionListener
{ Menuwindow window ;
Button button1,button2;
public void init()
{ button1=new Button("打開窗"); button2=new Button("關閉窗");
window=new Menuwindow("家園",60,60);
button1.addActionListener(this); button2.addActionListener(this);
add(button1);add(button2);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ window.setVisible(true); }
else if(e.getSource()==button2)
{ window.setVisible(false); }
}
}
15-例子6
import java.awt.event.*;
class 圓 extends Panel implements ActionListener//負責計算圓面積的類。
{ TextField 半徑=null,結果=null;Button b=null;
圓()
{半徑=new TextField(10);結果=new TextField(10);
b=new Button("確定");
add(new Label("輸入半徑"));add(半徑);
add(new Label("面積是:"));add(結果);
add(b);b.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{double r=Double.valueOf(半徑.getText()).doubleValue();
double area=3.1415926*r*r;
結果.setText(""+area);
}
}
class 三角形 extends Panel implements ActionListener//負責計算三角形面積的類。
{ TextField 邊_a=new TextField(6),
邊_b=new TextField(6),
邊_c=new TextField(6),
結果=new TextField(6);
Button b=new Button("確定");
三角形()
{add(new Label("輸入三邊的長度:"));
add(邊_a);add(邊_b);add(邊_c);
add(new Label("面積是:"));add(結果);
add(b);b.addActionListener(this);
}
public void actionPerformed(ActionEvent e)//獲取三邊的長度。
{double a=Double.valueOf(邊_a.getText()).doubleValue(),
b=Double.valueOf(邊_b.getText()).doubleValue(),
c=Double.valueOf(邊_c.getText()).doubleValue();
double p=(a+b+c)/2,
s=Math.sqrt(p*(p-a)*(p-b)*(p-c));//計算三角形的面積。
結果.setText(""+s);
}
}
class Win extends Frame implements ActionListener
{MenuBar bar=null;
Menu menu=null;
MenuItem item1, item2;
圓 circle ;三角形 trangle;
Win()
{bar=new MenuBar();
menu=new Menu("選擇");
item1=new MenuItem("圓面積計算");
item2=new MenuItem("三角形面積計算");
menu.add(item1);menu.add(item2);
bar.add(menu);setMenuBar(bar);
circle=new 圓();trangle=new 三角形(); //創建一個圓和一個三角形。
item1.addActionListener(this);
item2.addActionListener(this);
setVisible(true);
setBounds(100,120,100,90);
}
public void actionPerformed(ActionEvent e)
{if(e.getSource()==item1)
{removeAll();
add(circle,"Center");this.pack();//添加圓面積計算的界面。
}
else if(e.getSource()==item2)
{removeAll();
add(trangle,"Center");this.pack();//添加三角形面積計算的界面。
}
}
}
public class Example15_6
{ public static void main(String args[])
{ Win win=new Win();
win.setBounds(100,100,200,100);
win.setVisible(true); win.pack();
win.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e)
{System.exit(0); }
});
}
}
15-例子7
import java.applet.*;import java.awt.*;
class Thewindow extends Frame
{ MenuBar menubar;
Menu menu1,menu2;
MenuItem item1,item2,item3,item4,item5;
Thewindow(String s)
{super(s);
setSize(60,70);
setBackground(Color.white);
setVisible(true);
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("編輯");
item1=new MenuItem("新建"); item2=new MenuItem("保存");
item3=new MenuItem("打印"); item4=new MenuItem("復制");
item5=new MenuItem("全選");
menu1.add(item1);
menu1.addSeparator(); //菜單增加菜單項和分割線。
menu1.add(item2); menu1.add(item3); menu2.add(item4);
menu2.addSeparator(); menu2.add(item5);
menubar.add(menu1);menubar.add(menu2);
setMenuBar(menubar);
}
}
public class Example15_7 extends Applet
{ Thewindow window ;
public void init()
{ window=new Thewindow("體育之窗");
}
}
15-例子8
import java.applet.*;
import java.awt.*;
class Thiswindow extends Frame
{ MenuBar menubar;
Menu menu1,menu2;
CheckboxMenuItem item1,item2,item3,item4,item5;
Thiswindow(String s)
{ super(s);
setSize(60,70);
setBackground(Color.white);
setVisible(true);
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("編輯");
item1=new CheckboxMenuItem("新建");
item2=new CheckboxMenuItem("保存"); //使用ChechboxMenuItem,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -