基本操作题(共18分)
本题的功能是计算二维数组各个元素的和。程序中定义了二维数组arr,arr有3行4列共l2个元素,程序中采用for循环语句的嵌套来计算数组中各个元素的和,并将结果保存在sum变量中,最后打印输出结果。
public class javal{
public static void main(String[] args){
int arr[][]={{l,2,3,4},{5,6,7,8},{9,10,11,12}};
int sum=0;
int i=0,j=0;
for(i=0; )
for( )
;
System.OUt.println("sum="+sum);
}
}
简单应用题(共24分)
本题是设计一个窗体,窗口的背景色为系统桌面的颜
色,在窗口中分别画了空心和实心的黑色矩形、深灰色圆角
矩形和浅灰色椭圆形,并且画了白色粗体的“Java二级考
试!”字符串。
Import java.awt.*;
Import javax.swing.*;
Public class java2
{
Public static void main(string[]args)
{
Fillframe frame=new fillframe();
Frame. setdefaultcloseoperatio (jframe. exit_on_
close);
Frame.show();
}
}
Class fillframe extends jframe
{
Public fillframe()
{
Settitle("simple");
Setsize(width,height);
Fillpanel panel=new fillpanel();
Panel.setbackground(systemcolor.desktop);
Container contentpane=getcontentpane();
Contentpane.add(panel);
}
Public static final int width=400;
Public static final int width=250;
}
Class fillpanel extends jpanel
{
Public void paintcomponent(graphics g)
{
;
g.setcolor(new color(10,10,10));’
g.drawrect(10,10,100,30);
g.seteolor(new color(100,100,l00));
g.drawroundrect(150,10,100,30,15,15);
g.setcolor(new color(150,150,150));
g.drawoval(280,10,80,30);
g.setcolor(new color(10,10,10));
g.fillreet(10,110,100,30);
g.setcolor(new color(100,100,100));
g.drawroundreet(150,110,100,30,15,15);
g.seteolor(new color(150,150,150));
g.filloval(280,110,80,30);
g.setcolor(color.white);
font f=new font("宋体",_ _,20);
g.setfont(f);
g.drawstring("java二级考试!",l50,200);
}
}
综合应用题(共18分)
本题的功能是监听鼠标的操作。鼠标置于窗口中单击时(左键或右键),在单击的地方会画一个小矩形,如果将鼠标置于小矩形上,则鼠标光标状态改为小十字,按下鼠标左键可拖曳,双击鼠标左键(或右键)时,小矩形消失。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.awt.geom.*;
import javax.swing.*;
public class java3
{
public static void main(String[]args)
{
MouseFrame frame=new MouseFrame():
frame.setDefaultCloseOperation(JFrame.EXIT_
oN_CLOSE);
frame.show();
}
}
class MouseFrame extends JFrame
{
public MouseFrame()
{
setTitle("java3");
setSize(DEFAULT WIDTH, DEFAULT
HEIGHT):
MousePanel panel=new MousePanel();
Container contentPane=getContentPane();
contentPane.add(panel);
}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT=200;
}
class MousePanel extends JPanel
{
public MousePanel()
{
squares=new ArrayList();
current=null:
addMouseListener(new MouseHandler());
addMouseMotionListener(new MouseMotionHan-
dler());
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2=(Graphics2D)g;
for(int i=0;i
g2.draw((Rectangle2D)squares.get(i));
}
public void find(Point2D p)
{
for(int i=0;i
{
Rectangle2D r=(Rectangle2D)squares.get(i);
if(r.contains(p))return r;
}
return null:
}
public void add(Point2D p)
{
double x=P.getX();
double Y=P.getY():
current=new Rectangle2D.Double(
x-SIDELENGTH/2.
y-SlDELENGTH/2.
S1DELENGTH,
SIDELENGTH);
squares.add(current);
repaint();
}
public void remove(Rectangle2D s)
{
if(S= =null)return:
if(S= =current)current=null;
squares.remove(s):
repaint();
}
private static final int SIDELENGTH=10:
private ArrayList squares;
private Rectangle2D current;
private class MouseHandter extends MouseAction-
Listener
{
public void mousePressed(MouseEvent event)
{
current=find(event.getPoint());
if(current= =null)
add(event.getPoint());
}
public void mouseClicked(MouseEvent event)
{
current=find(event.getPoint());
if(current!=null&&event.getClickCount()
>=2)
remove(current);
}
}
private class MouseMotionHandler implements Mouse-
MotionListener
{
public void mouseMoved(MouseEvent event)
{
if(find(event.getPoint)= =null)
setCursor(Cursor.getDefaultCursor());
else
setCursor(Cursor.getPredefinedCursor
(Cursor.CROSSHAIR_CURSOR));
}
public void mouseDragged(MouseEvent event)
{
if(current!=null)
{
int x=event.getX():
int Y=event.getY(); 、
current.setFrame(
x-SIDELENGTH/2,
Y-SlDELENGTH/2.
SIDELENGTH,
SIDELENGTH);
repaint();
}
}
}
}
基本操作题
第1处:i<3;i++或i<=2;i++
第2处:j=O;j<4;j++或j=0;j<=3;j++
第3处:sum=sum+arr[i][j]
【解析】第1处、第2处是由该数组是3行4列的数组而得出的遍历数组的循环条件;第3处是将数组元素累加并将最终累加结果赋给sum。
简单应用题
第l处:super.paintComponent(g);
第2处:Font.BOLD
【解析】第1处是通过super语句调用父类的构造方法paintComponent(g)。第2处是通过字体对象的构造函数,设置“Java二级考试!”格式,题目要求是粗体,所以大Font.BOLD。
综合应用题
第1处:public Rectangle2D find(Point2D p)
第2处:private class MouseHandler extends MouseAdaopter
第3处:find(event.getPoint())= =null
【解析】第1处定义一个返回类型为Rectangle2D的find函数且有一个Point2D型的形参;第2处定义了继承鼠标适配器MouseAdapt的MouseHandler;第3处判断find函数的返回值是否为空。