{
redLbl.setBackground(Color.red);
yellowLbl.setBackground(Color.yellow); blueLbl.setBackground(Color.blue);
add(redLbl); add(yellowLbl); add(blueLbl); } }
7-7 改写例7-4代码,让用户输入欲显示的.gif文件名,程序将这个图像文件加载到内存并显示。
import java.applet.*; import java.awt.*;
import java.awt.event.*;
public class ch7_e7_7 extends Applet implements ActionListener {
Label promptLbl = new Label(\请输入欲显示的图像文件名:\ TextField inputTfd = new TextField(20);
Button getImageBtn = new Button(\显示图像\ Image myImage;
public void init() {
add(promptLbl); add(inputTfd); add(getImageBtn);
inputTfd.setText(\
getImageBtn.addActionListener(this); }
public void paint(Graphics g) {
if(myImage != null)
g.drawImage(myImage,10,100,this); }
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == getImageBtn) {
String str = inputTfd.getText().trim();
//System.out.println(str.substring(Math.max(0,str.length()-4)) + \ if(!(str.substring(Math.max(0,str.length()-4)).equals(\ str = str.trim() + \ //System.out.println(str + \
myImage = getImage(getDocumentBase(),str); repaint(); } } }
7-15 编写Applet,界面上包括一个标签,一个文本框和一个按钮。当用户单击按钮时,程序把文本框中的内容复制到标签中。 import java.applet.Applet; import java.awt.*;
import java.awt.event.*;
public class ch7_e7_15 extends Applet implements ActionListener {
Label outputLbl = new Label(\ \ TextField inputTfd = new TextField(10); Button copyBtn = new Button(\复制\
public void init() {
inputTfd.setText(\
outputLbl.setText(\ \ add(inputTfd); add(copyBtn); add(outputLbl);
copyBtn.addActionListener(this); }
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == copyBtn) {
outputLbl.setText(inputTfd.getText()); }
} }
7-18 将例7-8~例7-10综合成一个程序,使用Checkbox标志按钮的背景色,使用CheckboxGroup标志三种字体风格,使用Choice选择字号,使用List选择字体名称,由用户确定按钮的背景色和前景字符的显示效果。 import java.applet.*; import java.awt.*;
import java.awt.event.*;
public class ch7_e7_18 extends Applet implements ItemListener {
Checkbox ckb = new Checkbox(\背景色\ CheckboxGroup style = new CheckboxGroup(); Checkbox p = new Checkbox(\普通\ Checkbox b = new Checkbox(\黑体\ Checkbox i = new Checkbox(\斜体\ Choice size = new Choice();
Button btn = new Button(\效果\
public void init() {
add(ckb); add(p); add(b); add(i);
size.add(\ size.add(\ size.add(\ add(size); add(btn);
p.addItemListener(this); b.addItemListener(this); i.addItemListener(this); ckb.addItemListener(this); size.addItemListener(this); }
public void itemStateChanged(ItemEvent e) {
Checkbox temp;
Font oldF = btn.getFont(); String s; int si;
if(e.getItemSelectable() instanceof Checkbox) {
temp = (Checkbox)(e.getItemSelectable()); if(temp.getLabel()==\背景色\ if(temp.getState())
btn.setBackground(Color.cyan); else
btn.setBackground(Color.gray);
else if(temp.getLabel()==\普通\
btn.setFont(new Font(oldF.getName(),Font.PLAIN,oldF.getSize())); else if(temp.getLabel()==\黑体\
btn.setFont(new Font(oldF.getName(),Font.BOLD,oldF.getSize())); else if(temp.getLabel()==\斜体\
btn.setFont(new Font(oldF.getName(),Font.ITALIC,oldF.getSize())); }
else if(e.getItemSelectable() instanceof Choice) {
Choice ctemp = (Choice)(e.getItemSelectable()); s = ctemp.getSelectedItem(); si = Integer.parseInt(s);
btn.setFont(new Font(oldF.getName(),oldF.getStyle(),si)); repaint(); } } }
7-20 编写一个Applet响应鼠标事件,用户可以通过拖动鼠标在Applet中画出矩形,并在状态条显示鼠标当前位置。 import java.applet.Applet; import java.awt.*;
import java.awt.event.*;
public class ch7_e7_20 extends Applet implements MouseListener, MouseMotionListener {
int beginX=0, beginY=0, endX=0, endY=0; public void init() {
this.addMouseListener(this);
this.addMouseMotionListener(this); }
public void paint(Graphics g) {
int x1,x2,y1,y2;
if(beginX < endX) {
x1 = beginX; x2 = endX; } else {
x1 = endX; x2 = beginX; }
if(beginY < endY) {
y1 = beginY; y2 = endY; } else {
y1 = endY; y2 = beginY; }
g.drawRect(x1,y1,x2-x1,y2-y1); }
public void mouseClicked(MouseEvent me) { }
public void mouseEntered(MouseEvent me) { }
public void mouseExited(MouseEvent me) { }
public void mousePressed(MouseEvent me) {