txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(10); btn=new Button(\
add(new Label(\请输入整数\ add(txtFl1); add(new Label(\ add(txtFl2); add(btn); add(txtFl3); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); }} ); validate(); btn.addActionListener(this); }
public void actionPerformed(ActionEvent e){ int add=Integer.parseInt(txtFl1.getText()) +Integer.valueOf(txtFl2.getText()).intValue();//两种字符串转整形的方法 txtFl3.setText(String.valueOf(add)); }
public static void main(String[] args){ new Test4_6(); } }
【7】说明文本框与文本区之间的区别,它们都可以引发什么事件?如何响应此事件? [解答]:TextField 对象是允许编辑单行文本的文本组件。
TextArea 对象是显示文本的多行区域。可以将它设置为允许编辑或只读
TextFiled和TextArea可以引用KeyEvent,ActionEvent,分别用使用组件的 addKeyListener 方法注册和addActionListener以接收事件。
【8】设计一个计算器,其中要使用按钮、文本框、布局管理和标签等构件,能实现加、减、
21
乘、除运算。
[解答]:Text4_8.java import java.awt.*;
import java.awt.event.*;
public class Test4_8 extends Frame implements ActionListener{ TextField txtFl1,txtFl2,txtFl3; Button btn1,btn2,btn3,btn4,btn5; public Test4_8(){
super(\简单的四则运算器\ setSize(300,400); setVisible(true);
setLayout(new GridLayout(3,1));
txtFl1=new TextField(5); txtFl2=new TextField(5); txtFl3=new TextField(5); btn1=new Button(\ btn2=new Button(\ btn3=new Button(\ btn4=new Button(\\
Panel p1=new Panel();p1.add(txtFl1);p1.add(txtFl2);p1.add(new Label(\
Panel p2=new Panel();p2.add(btn1);p2.add(btn2);p2.add(btn3);p2.add(btn4);
add(new Label(\请在下面输入运算数并运算规则进行运算:\ add(p1); add(p2);
addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); }} ); validate();
btn1.addActionListener(this); btn2.addActionListener(this); btn3.addActionListener(this); btn4.addActionListener(this); }
22
public void actionPerformed(ActionEvent e){
float num1=Float.valueOf(txtFl1.getText()).floatValue();
float num2=Float.valueOf(txtFl2.getText()).floatValue();//两种字符串转整形的方法 float rs=0;
if (e.getSource()==btn1){ rs=num1+num2;
txtFl3.setText(String.valueOf(rs)); }
else if (e.getSource()==btn2) { rs=num1-num2;
txtFl3.setText(String.valueOf(rs)); }
else if (e.getSource()==btn3) { rs=num1*num2;
txtFl3.setText(String.valueOf(rs)); }
else if (e.getSource()==btn4) { rs=num1/num2;
txtFl3.setText(String.valueOf(rs)); } }
public static void main(String[] args){ new Test4_8(); } }
【9】创建一个窗体,窗体中有一个按钮,当单击按钮后,就会弹出一个新窗体。 [解答]:Test4_9.java import java.awt.*;
import java.awt.event.*;
public class Test4_9 extends Frame implements ActionListener{ Button btn;
public Test4_9(){ super(\弹出窗口练习\ setSize(300,200); setVisible(true); setLayout(new BorderLayout()); btn=new Button(\点击我会弹出窗口\ Panel p1=new Panel(); p1.add(new Label(\ \ p1.add(btn);
23
p1.add(new Label(\ \ add(\ validate(); addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);} }); btn.addActionListener(this); }
public void actionPerformed(ActionEvent e){ new Test4_9(); }
public static void main(String[] args){ new Test4_9(); } }
【10】编写图形界面的Application程序,该程序包含一个菜单,选择这个菜单的“退出”选项可以关闭Application的窗口并结束程序。 [解答]:Test4_10.java import java.awt.*;
import java.awt.event.*;
public class Test4_10 extends Frame { MenuBar mbar; Menu file,edit,help;
MenuItem file_open,file_new,file_exit; MenuItem edit_copy,edit_cut; MenuItem help_about; public Test4_10(){
super(\菜单Application程序\ setSize(400,300); setVisible(true);
mbar=new MenuBar(); setMenuBar(mbar);
24
file=new Menu(\文件\ edit=new Menu(\编辑\ help=new Menu(\帮助\ mbar.add(file); mbar.add(edit); mbar.add(help);
file_new=new MenuItem(\新建\ file_open=new MenuItem(\打开\ file_exit=new MenuItem(\退出\ file.add(file_new); file.add(file_open); file.addSeparator(); file.add(file_exit);
edit_copy=new MenuItem(\复制\ edit_cut=new MenuItem(\粘贴\ edit.add(edit_copy); edit.add(edit_cut);
help_about=new MenuItem(\关于\ help.add(help_about);
validate(); }
public static void main(String[] args){ new Test4_10(); } }
【11】什么是容器的布局?试列举并简述Java中常用的几种布局策略。
[解答]:AWT容器分为两类:外部容器和内部容器。其中,外部容器一般会独立存在,例如Frame类;而内部容器则会嵌套在外部容器内部使用,例如Panel类。容器的布局是指对添加的各个组件进行有序的、统一的对位置进行编排,使其更加美观。
(下面的例子参照网上http://book.csdn.net/bookfiles/347/10034713585.shtml) 1.顺序布局
顺序布局(Flow Layout)是最基本的一种布局,面板的默认布局就是顺序布局。顺序布局指的是把图形元件一个接一个地放在面板上。下面是一个顺序布局的例子。 package sample; import java.awt.*;
import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;
25