请完成下列Java程序:记录鼠标在窗口中的信息,包括鼠标的移动事件以及鼠标在窗口中的位置坐标,要求在窗口下方显示鼠标的事件和位置信息,在窗口上方有按钮控制程序的正常退出。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
public class ex12_2
extends Frame. implements MouseMotionListener, ActionListener
private Label 1;
private String str=" ";
public static void main(String args[])
{
new ex12_2();
}
ex12_2( )
{
______;
setSize(200,200);
Button btn=new Button("exit");
btn.addActionListener (this);
add (btn, "North" );
l=new Label(str);
add (l, "South" );
show ();
}
public void mouseMoved(MouseEvent event)
{
str="Move: "+
l. setText (str);
}
public void mouseDragged(MouseEvent event)
{
}
public void actionPerformed(ActionEvent event)
{
if(event.getActionCommand().equals("exit"))
{
System.exit(0);
}
}
}
第1题:
下面的程序是用do-while语句计算10的阶乘。请在程序的每条横线处填写1个语句,使程序的功能完整。
注意:请勿改动main()主方法和其他已有的语句内容;仅在横线处填入适当的语句。
源程序文件代码清单如下:
public class DoWhileLoop
{
public static void main(______)
{
int n=10;
long result=1;
do
{
_____;
}
_____;
System.out.println("10的阶乘为:"+result);
}
}
第2题:
请完成下列Java程序:用JFrame建立—个窗口,再用网格布局管理器,对窗口布局进行控制,上面有2行2列4个按钮,要求对按钮的大小进行设定,宽度为150,高度为80。
注意:请勿改动main主方法和其他已有语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ex19_2
{
public static void main(String args[])
}
JFrame. frm=new JFrame();
frm.setTitle("ex19_2");
Container cont=frm.getContentPane();
______;
cont.add(new JButton("button1"));
cont.add(new JButton("button2 "));
Dimension dimen=______;
JButton btn1=new JButton("button3");
btn1.setPreferredSize(dimen);
cont.add(btn1);
cont.add(new JButton("button4"));
frm.addWindowListener(new WindowAdapter()
{
public void winowClosing(WindowEvent we)
{
System.exit(0);
}
});
frm.pack();
frm.setVisible(true);
}
}
第3题:
请完成下列Java程序:用JFrame建立一个窗口,再用网格布局管理器,对窗口布局进行控制,上面有2行2列4个按钮,要求对按钮的大小进行设定,宽度为150,高度为80。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ex9_2{
public static void main(String[]args) {
JFrame. frm:new JFrame();
frm.setTitle("ex9_2");
Container cont = frm.getContentPane();
_____________;
cont.add(new JButton("button1"));
cont.add(new JButton("button2"));
Dimension dimen=____________;
JButton btn1 = new JButton("button3");
btn1.setPreferredSize(dimen);
cont.add(btn1);
cont.add(new JButton("button4"));
frm.addWindowListener(new WindowAdapter() {
public void winowClosing(WindowEvent we){
System.exit(0);
}
});
frm.pack();
frm.setVisible(true);
}
}
第4题:
下面是一个Applet小程序,其功能为:以坐标(10,20)为起点,画一条长为80个像素点的绿色直线,请在横线处填写一条语句,使程序的完整。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
______________________
import java.awt.*;
public class test_drawline extends Applet
{
public void paint(_______________)
{
g.setColor(Color.green);
_____________________
}
}
第5题:
请完成下列Java程序:实现打印出自己的源文件的功能。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
import java.io.*;
import java.util.StringTokenizer;
public class ex27_2{
public static void main(String args[])throws IOException{
FileInputStream fis=new FileInputStream("ex27_2.java");
DataInputStream dis=new DataInputStream(fis);
String str=null;
while(true){
__________________;
if(str==null){
__________________;
}
StringTokenizer st=new StringTokenizer(str);
while(st.hasMoreTokens()){
System.out.print(st.nextToken()+ " " );
}
System.out.println();
}
}
}
第6题:
请在每条横线处填写一个语句,使程序的功能完整,且输出结果为91 1。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
源程序文件代码清单如下:
public class Outer
{
public static void main (String args[]
{
Outer i = new Outer();
i,taskInner();
}
public class Inner
{
private int size;
public void doSomething(int size)
{
_____________//访问局部变量
this. size++; //访问内部类的成员变量
_____________//访问外部类的成员变量
System.out.println(size+" "+this.size+" "+Outer.this.size);
}
}
public void taskInner()
{
___________
k.doSomething(8);
}
private static int size;
}
第7题:
在程序中,使用适当的布局管理器,在Frame框的North位置添加一句提示信息,在South位置添加一个单行文本框,在这个文本框中输入的内容将会显示在Center位置。运行结果如下图所示。
注意:请勿修改main()主方法和其他已有语句内容,仅在横线处填入适当语句。
import java.awt.*;
import java.awt.event.*;
public class simple extends Frame
{
public static void main(String[] args)
{
simple frame=new simple("simple");
frame.init();
frame.setSize(300,300);
frame.show();
}
public simple(String name)
{
super(name);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{______;
}
} );
}
public void init()
{
setLayout(new______);
Label labelTitle=new Label("在本文框中输入字符串, 可以早Frame中间显示");
Label showTextLabel=new Label();
TextField textField=new TextField("请在这里输入字符串");
textField.addActionListener(new AddStringListener(showTextLabel,
textField));
add("North", labelTitle);
add("Center", showTextLabel);
add("South", textField);
}
}
class AddStringListener implements ActionListener
{
Label label;
TextField textField;
public AddStringListener(Label label, TextField textField)
{
this.label=label;
this.textField=textField;
}
public void actionperformed(ActionEvent e)
{
label.setText(textField.getText());
}
}
第8题:
请完成下列Java程序。程序的功能是显示用户在命令行方式下指定的任意驱动器目录的内容。
(提示:public String[]list();//将目录中所有文件名保存在字符数组中返回)
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
import java.io.*;
public class FindDirectories
{
public static void main(String args[]
{
if(args.length==0)
args=new String[]{".."};
try
{
_______________
String[] fileName=pathName.list();
for(int i=0;i<fileName.length;i++
{
File f=new File(pathName.getPath() fileName[i]);
if(___________________)
{
System.out.println(f.getCanonicalPath());
main(new String[]
{
f.getPath()
});
}
}
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
第9题:
下列Applet在窗口中放置2个Button,标签分别为“东”和“西”,在窗口中的位置与它们的名字相同。选择正确的语句填入横线处。 import java.awt.*; import java.applet.*; public class ex16 extends Applet { Button e, w; public void init() { e = new Button("东"); w = new Button("西"); add("East", e); add("West", w); } }
A.setLayout(new BoxLayout());
B.setLayout(new FlowLayout());
C.setLayout(new BorderLayout());
D.setLayout(new GridLayout());
第10题:
请完成下列Java程序:用awt实现一个图形用户界面,包含一个List构件和一个TextField构件,List中包含5个项目。要求选择不用的项目时,能在TextField构件中显示出相关的信息,包括事件的名称,选择的项目编号和项目的状态。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
public class ex14_2 extends Frame. implements ItemListener {
private TextField tf;
private List 1;
public static void main(String[] arg) {
ex14_2 obj14_2 = new ex14_2();
}
public ex14_2() {
setBackground(Color. GRAY);
setTitle("ex14_2");
l = new List(5);
l.addItemListener(this);
l.addItem("Item1");
l.addItem("Item2");
l.addItem("Item3");
l.addItem("Item4");
l.addItem("Item5");
add("Center",l);
tf = new TextField(50);
add("South",tf);
______________;
show ( );
}
public void itemStateChanged(ItemEvent event)
tf.setText( );
}
}
第11题:
本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的相对位置,比如显示为"鼠标的当前位置:X:Y"(其中,X为横坐标,Y为纵坐标)。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class java2
{
public static void main(String[]args)
{
MouseFrame. frame=new MouseFrame();
frame.setDefaultCloseoperation(JFrame.EXIT_
0N CLOSE);
frame.show();
}
}
class MouseFrame. extends JFrame
{
public MouseFrame()
{
setTitle("java2");
setSize(WIDTH,HEIGHT);
MousePanel panel=new MousePanel();
Container contentPane=getContentPane();
contentPane.add(panel);
}
public static final int WIDTH = 300;
public static final int HEIGHT=200;
}
class MousePanel extends JPanel
{
public MousePanel()
{
addMouseListener(new MouseHandler());
addMouseMotionListener(new MouseMotionHan-
dler());
}
public void paintComponent(Graphics g)
(
super.paintComponent(g);
String text="鼠标指针位置:"+mousex+":"
+mousey;
g.drawString(text,10,10);
}
private int mousex,mousey;
private class MouseMotionHandler {
public void mouseMoved(MouseEvent event)
{
mousex=event.getX();
mousey=event.getY();
repaint();
}
public void mouseDragged(MouseEvent event)
{
mousex=event.getX();
mousey=event.getY();
repaint();
}
}
private class MouseHandler
{
public void mousePressed(MouseEvent eveat)
{mousex=event.getX();
mousey=event.getY();
}
}
}
第12题:
用鼠标移动窗口,只需在窗口中按住鼠标左按钮不放,拖曳移动鼠标,使窗口移动到预定位置后释放鼠标按钮即可。
第13题:
请完成下列Java程序。程序的执行结果是生成一个具有一个按钮的窗体,并且按钮的标签是“欢迎参加全国计算机等级考试—Java部分!”字样。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
import java.awt.*;
import java.awt.event.*;
public class TestActionEvent
{
public static void main(String args[])
{
Frame. f=new Frame("Test");
Button b=new Button("欢迎参加Java考试!");
TestListener testmonitor=new TestListener();
Monitor bh=new Monitor();
b.addActionListener(bh);
f.addwindowListener(testmonitor);
f.add(b);
f.setSize(150,100);
f.setVisible(true);
}
}
class Monitor ___________ ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println("a button has been pressed");
}
}
class TestListener__________WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}
第14题:
请完成下列Java程序:使用JTabbedPane在窗口顶部建立一个图形标签,包含有两个标签窗格,一个使用简单标签(Labe1)显示欢迎信息,一个使用按钮和图标。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运经结果如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ex8_2 extends JPane1 {
public ex8_2() {
JTabbedPane jtp=new JTabbedPane(SwingConstants.BOTTOM);
Icon icon=new ImageIcon("icon.gif");
JButton btn=new JButton(icon);
JLabel l=new JLabel("Welcome to the NCR Examination!");
______________;
______________;
setLayout(new BorderLayout());
add(jtp,"Center");
}
public static void main(String args[]){
ex8_2 obi8_2=new ex8_2();
String str= obj8_2.getClass().toString();
if(str.indexOf("class") != -1)
str = str.substring(6);
JFrame. frm = new JFrame(str);
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(O);
}
});
frm.getContentPane () .add(obj8_2);
frm.setSize(300, 200);
frm.setVisible(true);
}
}
第15题:
请完成下列Java程序;实现JComboBox,包含3个选项,分别是java、c++、vb,以及1个文本区,用于显示选择结果。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class ex14_2 extends JFrame. implements ItemListener
{
BorderLayout bLay = new BorderLayout();
JTextField jtf = new JTextField(27);
JComboBox jcb = new JComboBox();
public ex14_2()
{
super ("ex14_2");//调用当前类ex14_2的父类JFrame的构造方法。
jcb.addItemListener(this);
jcb.addItem("java");
jcb.addItem("c++");
jcb.addItem("vb");
jcb.setEditable(false);
jtf.setHorizontalAlignment(SwingConstants.CENTER);
jtf.setEditable(false);
JPanel jp = new JPanel();
jp.setLayout(bLay);
jp.add(jtf, "South");
jp.add(jcb, "Center");
setContentPane(jp);
}
public static void main(String[] args)
{
JFrame. frame. = new ex14_2();
frame.pack();
frame.setVisible(true);
}
public void itemStateChahged(ItemEvent ie)
{
Object o =
if (o == job)
{
Object newO;
______;
jtf.setText(newO.toString()+"被选中!");
}
repaint();
}
}
第16题:
请完成下列Java程序。实例listener是监听器,frm是事件源,fr上发生的事件委托tat进行处理。程序的执行结果是显示一个蓝色的窗口,单击关闭按钮,可关闭窗口。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
public class BlueWindow
{
public static void main(String args[])
{
Frame. frm=new Frame. ("欢迎参加Java考试!");
TheAdapterTest listener=new TheAdapterTest();
frm. ______;
frm.setSize(200,200);
frm.setBackground(Color.blue);
frm. ______;
}
}
class TheAdapterTest extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(1);
}
}
第17题:
当按下鼠标时,一个圆不断地增大半径。
注意:请勿改动已有语句内容,仅在下划线处填入适当的语句。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class ex1 extends applet implements MouseListener
{
TextField text;
int x;
public void init()
{
x=6;
text=new TextField(30);
add(text);
addMouseListener(this);
}
public void paint(Graphics g)
{
x= x+2;
g.drawOval(10,10,x,x);
}
public void mousePressed(MouseEvent e)
{
Text.setText("鼠标按下的位置是:"+e.getX()+","e.getY());
repaint();
}
public void mouseReleased(MouseEvent e)
{
Text.setText("鼠标松开的位置是:"+e.getX()+","e.getY());
repaint();
}
public void mouseEntered(MouseEvent e)
{
Text.setText("鼠标进来的位置是:"+e.getX()+","e.getY());
repaint();
}
public void mouseExited(MouseEvent e)
{
Text.setText("鼠标退出的位置是:"+e.getX()+","e.getY());
______;
}
}
第18题:
请完成下列Java程序:生成一个窗口,包含一个长度为100的横向滚动条,实现对这个滚动条状态的监视,计算出滚动条的位置在整个长度的百分比,并通过画布将该值输出在滚动条上方的区域中。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
import java.awt.*;
import java.awt.event.*;
public class ex19_2 extends Frame. implements AdjustmentListener {
private Scrollbar sb;
private msgWnd mw;
private int val;
public static void main(String[] arg) {
ex19_2 obj19_2=new ex19_2();
}
public ex19_2() {
setTitle("ex19_2");
addWindowListener((WindowListener)new winListener());
mw = new msgWnd();
add("Center",mw);
sb = new Scrollbar(Scrollbar. HORIZONTAL);
sb.setVisibleAmount(10);
sb.setBlockIncrement(6);
sb.setUnitIncrement(5);
sb.addAdjustmentListener(this);
add("South",sb);
pack();
show();
}
public void adjustmentValueChanged(AdjustmentEvent ae) {
val = ae.getValue();
_______________;
}
class msgWnd extends Canvas {
msgWnd() {
setSize(450,20);
}
public void paint(Graphics g) (
g.drawString(" val=" +____________________+"%",10,15);
}
}
class winListener extends WindowAdapter {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
}
}
第19题:
以下程序中,使用适当的布局管理器,在Frame框的“North”位置添加一句提示信息,在“South”位置添加一个单行文本框,在这个文本框中输入的内容将会显示在“Center”位置。运行结果如下图所示。
注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。
import java.awt.*;
import java.awt.event.*;
public class Example2_6 extends Frame
{
public static void main(String [] argv)
{
Example2_6 frame. = new Example2_6("Example2_6");
frame, init ();
frame.setSize(300, 300);
frame, show ();
}
public Example2_6(String name)
{
super (name);
addWindowListener (new WindowAdapter ()
{ public void windowClosing(WindowEvent e)
{ __________;
}
} );
}
public void init()
{
setLayout (new ___________);
Label labelTitle = new Label("在文本框中输入字符串,可以在Frame. 中间显示");
Label showTextLabel = new Label();
TextField textField = new TextField("请在这里输入字符串");
textField.addActionListener (new AddStringListener(showTextLabel, textField) );
add("North", labelTitte);
add("Center", showTextLabel);
add("South", textField);
}
}
class AddStringListener implements ActionListener
{
Label label;
TextField textField;
public AddStringListener(Label label, TextField textField)
{
this. label = label;
this.textField = textField;
}
public void actionPerformed(ActionEvent e)
{
label, setText (textField. getText ());
}
}
第20题:
请完成下列Java程序。程序的输出结果:a=6,b=5。
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
public class ex38_2{
public static void main(String args[])
{
int a=5,b=6;
a=_________;
b=a-b;
a=_________;
System.out.println("a="+a+"\tb="+b);
}
}
第21题:
阅读以下说明和Java代码,将解答写入对应栏内。
【说明】
请完成下列Java程序。程序的执行结果是生成一个具有一个TextField类型的对象in、 Button类型的对象btn和Label类型的对象out图形用户界面,程序的功能是计算用户输入数的平方,如图3所示。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
【程序】
import java. awt.*;
import java, awt. event.*;
public class square {
public static void main(String args[ ]){
(1)
}
}
class AppFrame. extends Frame{
TheAdapterTest listener = new TheAdapterTest( );
Text Field in = new TextField (5);
Button btn = new Button("计算");
Label ut = new Label("用于显示计算结果");
public AppFrame( )
{
setLayout( new FlowLayout( ));
add(in);
add(btn)
add(out);
btn. addActionListener( new BtnActionAdapter( ));
addWindowListener (listener);
setSize(400,100);
show( );
}
class BtnActionAdapter implements (2) {
public void actionPerformed((3)) {
String s = in. getText( );
double d =(4)
double sq = d * d;
out. setText(d+"的平方是:" +sq);
}
}
class TheAdapterTest extends WindowAdapter
{
public void windowCIosing((5))
{
System. exit(1)
}
}
}
第22题:
本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的相对位置,如显示为‘‘鼠标的当前位置:X:Y”(其中,X为横坐标,Y为纵坐标)。
第23题:
●试题六
阅读以下说明和Java代码,将解答写入答题纸的对应栏内。
【说明】
请完成下列Java程序。程序的执行结果是生成一个具有一个TextField类型的对象in、Button类型的对象btn和Label类型的对象out图形用户界面,程序的功能是计算用户输入数的平方,如图3所示。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
【程序】
import javA.awt.*;
import javA.awt.event.*;
public class square {
public static void main(String args[]){
(1)
}
}
class AppFrame. extends Frame{
TheAdapterTest listener=new TheAdapterTest();
TextField in=new TextField (5) ;
Button btn=new Button("计算");
Label ut=new Label("用于显示计算结果");
public AppFrame()
{
setLayout(new FlowLayout());
add(in);
add(btn);
add(out);
btn.addActionListener(new BtnActionAdapter());
addWindowListener(listener);
setSize(400,100);
show();
}
class BtnActionAdapter implements (2) {
public void actionPerformed( (3) ){
String s=in.getText();
double d= (4)
double sq=d*d;
out.setText(d+"的平方是:"+sq);
}
}
class TheAdapterTest extends WindowAdapter
{
public void windowClosing( (5) )
{
System.exit (1) ;
}
}
}
●试题六
【答案】 (1)new AppFrame()
(2)ActionListener
(3)ActionEvent
(4)Integer.parseInt(s);或等价形式
(5)WindowEvent
【解析】生成类AppFrame的对象。实现接口ActionListener。按钮动作事件类名。将字符串s转化为整数并赋给变量d。窗口事件类名 。