else if(ae.getSource()==greenSlider)
{
value=greenSlider.getValue();
myButton.setBackground(newColor(oldColor.getRed(),
value,oldColor.getBlue()));
}
else if(ae.getSource()==blueSIider)
{
value=blueSlider.getValue();
myButton.setBackground(newColor(oldColor.getRed(),
oldColor.getGreen(),value));
}
}
}
7 JPasswordField是谁的子类?它有什么特点?编写JApplet程序接受并验证用户输入的账号和密码,一共提供3次录入机会。
解:JPasswordField是JTextField的子类,其特点是会将用户输入的内容屏蔽起来。
源程序
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class ch8_e8_19 extends JApplet implements ActionListener
{
final String SETUP_PROMPT=\:\
final String SIGNIN_PROMPT=\
JLabel myLbl=new JLabel(SETUP_PROMPT);
JTextField myTfd=new JTextField(10);
JPasswordField myPwdFd=new JPasswordField(10);
int count=0;
String accountNumber=null;
String inputAccNum=null;
String password=null;
public void init()
{
Container c=getContentPane();
c.setLayout(new FlowLayout());
c.add(myLbl);
c.add(mfrfd);
c.add(myPwdFd);
myTfd.addActionListener(this);
myPwdFd.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==myTfd)
{
inputAccNum=myTfd.getText().trim();
myPwdFd.requestFocus();
System.out.println(inputAccNum+\;
}
else if(ae.getSource()==myPwdFd)
{
if(myLbl.getText().equals(SETUP_PROMPT))
{
accountNumber=inputAccNum;
password=String.valueOf(myPwdFd.getPassword()).trim();
myTfd.setText(\;
myPwdFd.setText(\;
myLbl.setText(SIGNIN_PROMPT);
myTfd.requestFocus();
System.out.println(password+\;
}
else if(myLbl.getText().equals(SIGNIN_PROMPT))
{
String
str=String.valueOf(myPwdFd.getPassword()).trim();
System.out.println(inputAccNum+\;
if(inputAccNum.equals(accountNumber) && str.equals(password))
{
count=0;
myLbl.setText(SETUP_PROMFY);
showStatus(\密码确认成功。\
myTfd=setText(\
myPwdFd.setText(\
MyTfd.requestFocus();
}
else
{
if (++count<3)
{
myPwdFd.setText(\
showStatus(\账号或密码输入失败,请重试。\;
}
else
{
showStatus(\输入失败三次,再见\;
myTfd.setEnabled(false);
myPwdFd.setEnabled(false);
}
}
}
}
} }
8 JTabbedPane与使用CardLayout的容器有何不同?编写一个JApplet程序包含一个JTabbedPane,验证其使用方法。
解:JTabbedPane的布局策略与使用CardLayout的容器的布局策略相似。但是 JTabbedPane中每一页都有一个页签,方便用户了解该页包含的内容。
源程序
import java.awt.*;
import java.awt.event.*;
import javax.Swing.*;
import javax.swing.event.*;