编写一个 Label 类的子类,以便增加一些新的属性和功能,在子类中增加新的成员变量,
比如,子类可以有文本框,文本区等成员变量.
在下面的例子 4 中,MyLabel 类是 Label 的子类,MyLabel 创建的对象有文本框,文本区, 按钮等成员变量..MyLabe 类实现了 ActionListener 接口,以便监视文本框 inputNumber 上的事件.当在文本框 inputNumber 中输入数字回车后,文本区 showResult 显示这个数的 全部因子,单击按钮 button,文本区 showResult 显示不超过这个数的全部素数.
import java.awt.*;import java.awt.event.*;import java.applet.*;
class MyLabel extends Label implements ActionListener
{
String 标签上的初始名称;
TextField inputNumber;TextArea showResult;Button button; MyLabel(String s,Container con)
{
super(s);
标签上的初始名称=s;
inputNumber=new TextField(10); showResult =new TextArea(10,10); button=new Button("Enter"); button.addActionListener(this);inputNumber.addActionListener(this); con.add(this);con.add(inputNumber);con.add(showResult);con.add(button);
}
public void actionPerformed(ActionEvent e)
{
long n=0;
showResult.setText(null);
try{ n=Long.valueOf(inputNumber.getText()).longValue();
this.setText(标签上的初始名称);
catch(NumberFormatException e1)
{
this.setText("请输入数字字符");
}
if(e.getSource()==inputNumber)
{ 求因子(n);
}
if(e.getSource()==button)
{
求素数(n);
}
}
public void 求因子(long n)
{ for(int i=1;i<=n;i++)
{ if(n%i==0)
showResult.append("\n"+i);
}
}
public void 求素数(long n)
{
showResult.append("小于"+n+"的素数有:");
for(int i=1;i<=n;i++)
{
int j=0;
for(j=2;j<i;j++)
{
if(i%j==0) break;
}
if(j>=i)
{ showResult.append("\n"+i);
}
}
}
}
public class Example10_4 extends Applet
{
MyLabel lab;
public void init()
{ lab=new MyLabel("回车求该数的因子,单击按钮求出小于这个数的素数",this);
}
}
习题十
1 编写一个小应用程序,在小应用程序的容器中有一个按钮和一个文本框.当点击按钮时,
文本框显示按钮的名字.
2 编写一个有两个文本框和一个按钮的小应用程序,在一个文本框输入单词 girl 之后按回
车键或点击按钮,另一个文本框都能显示”男孩”二字.
3 编写一个小应用程序,设计四个按钮,分别命名为”加”,”差”,”积,”,”除”.有三个文本框. 单击相应的按钮,将两个文本框的数字做运算,在第三个文本框中显示结果.要求处理 NumberFormatException.
编写一个竖状的标签.
来源:oschina
链接:https://my.oschina.net/PROGRAMB/blog/3187968