一、问答题
1.Frame容器的默认布局是BorderLayout布局。
2.不可以。
3.ActionEvent。
4.DocumentEvent。
5.5个。
6.MouseMotionListener。
二、选择题
1.C。2.A。3.A。4.D。5.C。
三、编程题
1. import java.awt.*;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.event.*;
public class E {
publicstatic void main(String args[]) {
Computerfr=new Computer();
}
}
class Computer extends JFrame implementsDocumentListener {
JTextAreatext1,text2;
intcount=1;
doublesum=0,aver=0;
Computer(){
setLayout(new FlowLayout());
text1=new JTextArea(6,20);
text2=new JTextArea(6,20);
add(newJScrollPane(text1));
add(newJScrollPane(text2));
text2.setEditable(false);
(text1.getDocument()).addDocumentListener(this);
setSize(300,320);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public voidchangedUpdate(DocumentEvent e) {
Strings=text1.getText();
String[]a =s.split("[^0123456789.]+");
sum=0;
aver=0;
for(inti=0;i<a.length;i++) {
try {sum=sum+Double.parseDouble(a[i]);
}
catch(Exception ee) {}
}
aver=sum/count;
text2.setText(null);
text2.append("\n和:"+sum);
text2.append("\n平均值:"+aver);
}
public voidremoveUpdate(DocumentEvent e){
changedUpdate(e);
}
public voidinsertUpdate(DocumentEvent e){
changedUpdate(e);
}
}
2. importjava.awt.*;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.event.*;
public class E {
public staticvoid main(String args[]) {
ComputerFrame fr=new ComputerFrame();
}
}
class ComputerFrame extends JFrame implementsActionListener {
JTextFieldtext1,text2,text3;
JButtonbuttonAdd,buttonSub,buttonMul,buttonDiv;
JLabel label;
publicComputerFrame() {
setLayout(newFlowLayout());
text1=newJTextField(10);
text2=newJTextField(10);
text3=newJTextField(10);
label=newJLabel(" ",JLabel.CENTER);
label.setBackground(Color.green);
add(text1);
add(label);
add(text2);
add(text3);
buttonAdd=newJButton("加");
buttonSub=newJButton("减");
buttonMul=newJButton("乘");
buttonDiv=newJButton("除");
add(buttonAdd);
add(buttonSub);
add(buttonMul);
add(buttonDiv);
buttonAdd.addActionListener(this);
buttonSub.addActionListener(this);
buttonMul.addActionListener(this);
buttonDiv.addActionListener(this);
setSize(300,320);
setVisible(true);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public voidactionPerformed(ActionEvent e) {
double n;
if(e.getSource()==buttonAdd) {
doublen1,n2;
try{n1=Double.parseDouble(text1.getText());
n2=Double.parseDouble(text2.getText());
n=n1+n2;
text3.setText(String.valueOf(n));
label.setText("+");
}
catch(NumberFormatException ee)
{text3.setText("请输入数字字符");
}
}
elseif(e.getSource()==buttonSub) {
doublen1,n2;
try{ n1=Double.parseDouble(text1.getText());
n2=Double.parseDouble(text2.getText());
n=n1-n2;
text3.setText(String.valueOf(n));
label.setText("-");
}
catch(NumberFormatExceptionee)
{text3.setText("请输入数字字符");
}
}
elseif(e.getSource()==buttonMul)
{doublen1,n2;
try{n1=Double.parseDouble(text1.getText());
n2=Double.parseDouble(text2.getText());
n=n1*n2;
text3.setText(String.valueOf(n));
label.setText("*");
}
catch(NumberFormatException ee)
{text3.setText("请输入数字字符");
}
}
elseif(e.getSource()==buttonDiv)
{double n1,n2;
try{n1=Double.parseDouble(text1.getText());
n2=Double.parseDouble(text2.getText());
n=n1/n2;
text3.setText(String.valueOf(n));
label.setText("/");
}
catch(NumberFormatException ee)
{text3.setText("请输入数字字符");
}
}
validate();
}
}
3. import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class E {
public staticvoid main(String args[]){
Window win= new Window();
win.setTitle("使用MVC结构");
win.setBounds(100,100,420,260);
}
}
class Window extends JFrame implements ActionListener {
Laderlader; //模型
JTextFieldtextAbove,textBottom,textHeight; //视图
JTextAreashowArea; //视图
JButton controlButton; //控制器
Window() {
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
lader = newLader();
textAbove =new JTextField(5);
textBottom =new JTextField(5);
textHeight =new JTextField(5);
showArea =new JTextArea();
controlButton=new JButton("计算面积");
JPanelpNorth=new JPanel();
pNorth.add(new JLabel("上底:"));
pNorth.add(textAbove);
pNorth.add(new JLabel("下底:"));
pNorth.add(textBottom);
pNorth.add(new JLabel("高:"));
pNorth.add(textHeight);
pNorth.add(controlButton);
controlButton.addActionListener(this);
add(pNorth,BorderLayout.NORTH);
add(newJScrollPane(showArea),BorderLayout.CENTER);
}
public voidactionPerformed(ActionEvent e) {
try{
doubleabove = Double.parseDouble(textAbove.getText().trim());
doublebottom = Double.parseDouble(textBottom.getText().trim());
doubleheight = Double.parseDouble(textHeight.getText().trim());
lader.setAbove(above) ;
lader.setBottom(bottom);
lader.setHeight(height);
doublearea = lader.getArea();
showArea.append("面积:"+area+"\n");
}
catch(Exceptionex) {
showArea.append("\n"+ex+"\n");
}
}
}
class Lader {
doubleabove,bottom,height;
public doublegetArea() {
doublearea = (above+bottom)*height/2.0;
returnarea;
}
public voidsetAbove(double a) {
above = a;
}
public voidsetBottom(double b) {
bottom = b;
}
public voidsetHeight(double c) {
height = c;
}
}