问答题本程序中,生成了一个窗口,该窗口的长、宽为屏幕长、宽的一半,并且窗口的大小不能改变,如图所示。importjava.awt.*;importjavax.swing.*;publicclassexam_35{publicstaticvoidmain(String[]args){FrameSizeframe=newFrameSize();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE;frame.show();}}classFrameSizeextendsJFrame{publicFrameSize(){setTitle("exam_35");Toolkittk=Toolkit.getDefaultToolkit();DimensionscreenSize=______;intscreenHeight=screenSize.height;intscreenWidth=screenSize.width;setSize(screenWidth/2,screenHeight/2);______;}}
问答题本程序的功能是:获得字符串"China"的长度和最后一个字符,并将这些信息打印出来。
public class exam_17{
public static void main(String[] args){
______;
str="China";
int n=0;
______;
char c;
______;
System.out.println("字符串中共有"+n+"个字符,最后一个字符是:"+c);
}
}
问答题本程序使用分支语句来控制输出,已知初始状态字符变量ch='A',整型变量r=6,并且输出结果是:r=5。
public class exam_3{
public static void main(______){
char ch='A'; int r=6;
______(ch+1){
case 'A': r=r+3;
case 'B': r=r+5;
case 'C': ______
default : r=r*2;
}
System.out.println("r="+r);
}
}
问答题本程序用下拉菜单来选择文本的字体。窗口中有一个文字标签和一个下拉菜单,下拉菜单中有三种字体:“宋体”、“楷体”和“黑体”,任选一种字体,文字标签中的文本就会变成菜单项对应的字体,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassexam_24extendsFrame{publicstaticvoidmain(Stringargs[]){exam_24f=newexam_24("exam_24");Panelpan=newPanel();f.init();}publicexam_24(Stringstr){super(str);}publicvoidinit(){addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});setSize(400,100);setLayout(newFlowLayout(FlowLayout.LEFT));jl=newJLabel("欢迎学习Java.");jl.setFont(newFont("黑体",0,20));ch=newChoice();ch.add("宋体");ch.add("楷体");ch.add("黑体");add(jl);add(ch);ch.addItemListener(______{publicvoiditemStateChanged(ItemEvente){Objectobj[]=(e.getItemSelectable()).______;if(obj[0]=="宋体")jl.setFont(newFont("宋体",0,20));if(obj[0]=="楷体")jl.setFont(newFont("楷体_GB2312",0,20));if(obj[0]=="黑体")jl.setFont(newFont("黑体",0,20));repaint();}});setVisible(true);}privateJLabeljl;privateChoicech;}
问答题本程序统计score[]={37,89,63,60,59,78,91}中成绩不及格的人数。
public class exam_57{
public static void main(String[] args) {
int score[]={37,89,63,60,59,78,91);
int sum=0;
int i=0;
while(i<score.length){
if(score[i]>=60){
______;
______;
}
______;
i++;
}
System.out.println("below 60 sum:"+sum);
}
}
问答题下面是实现用户界面程序的一个例子,请在画线处填写适当语句,使程序能正确执行。
import java.awt.*;
import java.awt.event.*;
public class AWTExample6 extends MouseAdapter{
private Frame frame;
private TextArea textArea;
private MenuItem about;
private MenuItem exit;
private PopupMenu popupMenu;
private Panel panel;
public void initGUI(){
flame=new Frame("mouse event");
textArea=new TextArea(" ",10,10);
______
frame.add(textArea);
frame.setSize(200,200);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);}
});
}
public void mousePressed(MouseEvent event){
if(event.getModifiers()==event.BUTTON1_MASK){
textArea.append("点击左键"+"/r/n"):
textArea.append("点击位置:x="+event.getX()+" y="+event.getY()+"/r/n");
textArea.append("点击次数"+event.getClickCount()+"/r/n");
}
else if(event.getModifiers()==event.BUTTON3_MASK){
textArea.append("点击右键"+"/r/n");
textArea.append("点击位置:x="+event.getX()+" y="+event.getY()+"/r/n");
textArea.append("点击次数"+event.getClickCount()+"/r/n");
}
}
public static void main(String args[]){
AWTExample6 example=new AWTExample6();
example.initGUI();
}
}
问答题本题程序的功能是:主窗口中有两个按钮“Start”和“Close”,单击按钮“Start”后会在窗口左上角生成一个黑色实心小球,小球做斜线运动,碰到面板边缘后反弹几次后停止运动,再次单击按钮“Start”后又会生成一个小球做同样的运动。程序中存在若干错误,请找出并改正(注意:不得改动程序的结构,不得增行或删行)。 import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.util.*; import javax.swing.*; public class advance public static void main (String[] args) JFrame frame = new BounceFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) frame.show(); class BounceFrame extends JFrame public BounceFrame() setSize(WIDTH,HEIGHT); setTitle("advance"); Container contentPane = getContentPane(); Canvas = new BallCanvas(); contentPane.add(canvas,BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); addButton(buttonPanel,"Start",new ActionListener() public void actionPerformed(ActionEvent evt) addBall(); ); addButton(buttonPanel,"Close",new ActionListener() public void actionPerformed(ActionEvent evt) System.exit (0); ); contentPane.add(buttonPanel,BorderLayout.SOUTH); public void addButton(Container c,String title,Listener listener) JButton button = new JButton(title); c.add(button); button.addActionListener(listener); public void addBall() try Ball b = new Ball(canvas); canvas.add(b); for (int i = 1;i <= 1000; i++) b.move (); Runnable.sleep (5); catch (InterruptedException exception) private BallCanvas canvas; public static final int WIDTH = 450; public static final int HEIGHT = 350; class BallCanvas extend JPanel public void add(Ball b) balls.add(b); public void paintComponent(Graphics g) super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; for (int i = 0; i < balls.size(); i++) Ball b = (Ball)balls.get(i); b.draw(g2); private ArrayList balls = new ArrayList(); class Ball public Ball(Component c) canvas = c; public void draw(Graphics2D g2) g2.fill(new Ellipse2D.Double(x,y,XSIZE,YSIZE)); public void move() x += dx; y += dy; if(x < 0) x = 0; dx = -dx; if(x+XSIZE >= canvas.getWidth()) x = canvas.getWidth() - XSIZE; dx = -dx; if(y < 0) y = 0; dy = -dy; if (y+YSIZE >= canvas.getHeight()) y = canvas.getHeight() - YSIZE; dy = -dy; canvas.paint(canvas.getGraphics()); private Component canvas; private static final int XSIZE = 15; private static final int YSIZE = 15; private int x = 0; private int y = 0; private int dx = 2; private int dy = 2;
问答题本题程序的功能是程序的主窗口有一个“登录”按钮和两个文本框——“请输入密码:”和“密码验证…”,用户在密码框中输入密码后单击“登录”按钮,然后与预先定义的密码比较(密码预设定为password),如果相同,则在“密码验证…,’文本框中提示“通过!”否则提示“失败!”。“密码验证…”文本框是只读的。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class simple
{
public static void main(String[] args)
{
LoginFrame frame = new LoginFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame,show ();
}
}
class LoginFrame extends JFrame
public LoginFrame()
{
setTitle("simple");
setSize(WIDTH,HEIGHT);
Container contentPane = getContentPane();
JPanel textPanel = new JPanel();
JLabel inputPassword = new JLabel("请输入密码:",JLabel.CENTER);
MyPassword = new JPasswordField(20);
textPanel.add(inputPassword);
textPanel.add(myPassword);
JLabel checkedPassword = new JLabel("密码验证...",JLabel.LEFT);
CheckPassword = new JTextField(20);
______;
textPanel.add(checkedPassword);
textPanel.add(checkPassword);
loginButton = new JButton("登录");
loginButton.addActionListener(new LoginAction());
textPane1.add(ioginButton);
contentPane.add(textPanel);
}
private class LoginAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
char[] s = myPassword.getPassword();
String gets = new String(s);
if(gets.equals(CHECKPASSWORD))
{
checkPassword,setText ("通过!");
}
else
{
checkPassword.setText ("失败");
}
}
}
public static final int WIDTH = 280;
public static final int HEIGHT = 180;
public static final String CHECKPASSWORD = "password";
______;
private JTextField checkPassword;
private JButton loginButton;
问答题下面是一个Applet程序,其功能是通过两个文本框获得用户输入的两个数,按回车键计算这两个数的商。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java.awt.*; import java.awt.Event.*; import java.applet.*; /* <applet code="exl8_3.class"width=800 height=400> </applet> */ public class ex18_3 extends Applet private TextField tf1,tf2; private String strAnswer; public void init() tf1=new TextField(20); add(tf1); tf2=new TextField(20); add(tf2); strAnswer="Undefined"; public void paint(Graphics g) Font f=new Font("TimesRoman",Font.PLAIN,20); g.setFont(f); g.drawstring(“商:”,80,100); g.drawstring(strAnswer,60,150); public boolean action(Event e,Object O) String s1=tf1.getText( ); String s2=tf2.getText( ); try int n1=String.valueOf(s1); int n2=String.valueOf(s2); int out=n1/n2; strAnswer=InteSer.parseInt(out); catch(NamberFormatEXCeption nfe) strAnswer="不存在的数!”; repaint( ); return true; ex18_3.html <HTML> <HEAD> <TITLE>eX18_3</TITLE> </HEAD> <BODY> <applet Code="eX18_3.class"width=800 height=400> </applet> </BODY> </HTML>
问答题本程序中动态定义了一个二维整型数组a,数组a的第一行有3个元素,第二行有5个元素,程序将0~2赋给第一行元素,将0~4赋给第二行元素,最后打印输出各数组元素。
public class exam_91{
public static void main(String[] args) {
int a[][]=new int[2][];
a[0]=new int[3];
a[1]=new int[5];
int i,j;
for(i=0;______;i++)
a[0][i]=i;
for(i=0;i<a[1].length;i++)
a[1][i]=i;
for(i=0;______;i++){
for(j=0;______;j++)
System.out.print("a["+i+"]="+a[i][j]+",");
System.out.println();
}
}
}
问答题下面是一个Applet程序,其功能是输出已定义好的两个变量x和chr。请改正程序中的错误(有下划线的语句),使用序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;{{U}}importjava.Applet;{{/U}}/*<appletCode="ex34_3.class"width=800height=400></applet>*/{{U}}publicclassex34_3implementsApplet{{/U}}{intx=10;charchr='R';Labeloutput1;Labeloutput2;{{U}}privatevoidinit(){{/U}}{output1=newLabel("定义int类型变量"+"x,的初值为"+x);output2=newLabel("定义char类型变量"+"chr,的初值为"+chr);add(output1);add(output2);}}ex34_3.html<HTML><HEAD><TITLE>ex34_3</TITLE></HEAD><BODY><appletcode="ex34_3.class"width=400height=400></applet></BODY></HTML>
问答题本程序定义了一个长度为50的一维数组,并且分别将1~50赋给数组中的各个元素,最后输出数组元素对应的值。
public class exam_15{
public static void main(String[] args){
______;
arr=______;
for(int i=0; i<arr.length; i++){
______;
}
for(int i=0; i<arr.length; i++)
System.out.print(arr[i]+" ");
}
}
问答题下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以声文本区已有的文本基础上追加显示10条"Welcome to China!”信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import javax.swing.*; import java.awt.*; import java.awt.event.*; /* 〈applet code="exl3_4.class"width=800 height=400〉 〈/applet〉 */ public class exl4_3 extends JApplet{ JButton jb=new JButton("Add Text"); JTextPane jtp=new JTextPane(); public void init(){ jb.addActionListener(new Ac60nListener(){ pubhc void actionPerformed(ActionEvent e){ for(int i=1;i {{U}}jtp.geText(jtp.setText()+"Welcome to China! /n");{{/U}} } }); Container cp=getContentPane(); cp.add(new JScrollPane(jtp)); cp.add(BorderLayout.SOUTH,jtp); } public static void main(Stdng[] args){ ex14_3 obj14_3=new ex14_3(); String str=obj14_3.getClass().toString(); if(str.indexOf("class")!=-1) str=str.substring(6); JFrame frm=new JFrame(str); frm.addWindowListener(new WindowAdapter(){ pubhc void windowClosing(WindowEvent we){ System.exit(0); } {); frm.getContentPane().add(ex3_10); frm.setSize(300,400); frm.setVisible(true); } } ex14_3.html 〈HTMI〉 〈HEAD〉 〈TITLE〉ex14_3 〈/HEAD〉 〈BODY〉 〈applet code="ex14_3.class"width=800 height=400〉 〈/applet〉 〈/BODY〉 〈/HTML〉
问答题本程序中,采用的是边框布局管理器,每个布局块放置了一个按钮,单击其中一个按钮,则该按钮隐藏起来,单击其他按钮,则原来隐藏的按钮显示出来,而单击的按钮隐藏起来。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassexam_91extendsJFrameimplementsActionListener{privateJButtonb[];privateStringnames[]={"HideNorth","HideSouth","HideEast","HideWest","HideCenter"};privateFlowLayoutlayout;publicexam_91(){super("exam_91");layout=newBorderLayout(5,5);Containerc=getContentPane();c.setlayout(layout);b=newJButton[names.length];for(inti=0;i<names.length;i++){b[i]=newJButton(names[i]);b[i].addActionListener(this);}c.add(b[0],BorderLayout.NORTH);c.add(b[1],BorderLayout.SOUTH);c.add(b[2],BorderLayout.EAST);c.add(b[3],BorderLayout.WEST);c.add(b[4],BorderLayout.CENTER);setSize(300,200);show();}publicvoidactionPerformed(ActionEvente){for(inti=0;i<b.length;i++)if(e.getSource()==b[i])b[i].setVisible(false);elseb[i].setVisible(false);layout.layoutContainer(getContentPane());}publicstaticvoidmain(Stringargs[]){exam_91app=newexam_91();app.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}
问答题本题程序将字符串sir中的字符a用$符号代替,然后将字符串中第一个$字符前的听有字符去掉,并打印输出最后的str字符串。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 public class basic public static void main(String[] args) String str = "Iamagoodboy,andwhataboutyou?"; str =______; int pos =______; str =______; System.out.println (str);
问答题本题中,窗口的背景色为系统桌面的颜色,在窗口中分别画空心和实心的黑色矩形、深灰色圆角矩形和浅灰色椭圆形,并且画白色粗体的“欢迎学习Java!”字符串。
问答题下面的Applet程序通过内部类处理鼠标单击事件。在小程序中,如果点击鼠标,则在状态栏输出鼠标点击的坐标;如果双击鼠标,则显示一副图片,鼠标单击处为显示图片的左上角坐标,显示图片的宽度为200像素,高度为180像素。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。注意:不改动程序的结构,不得增行或删行。程序的执行结果为:importjava.applet.*;importjava.awt.*;importjava.awt.event.*;/*<appletcode=Huawidth=200height=100></applet>*/publicclassHuaextendsApplet{intxPos,yPos;intsum;Imagepic;publicvoidinit(){addMouseListener(newClickMouse());}publicvoidpaint(Graphicsg){if(sum==2){{{U}}g.drawImage(pic,xPos,yPos,200,180,super);{{/U}}}}publicclassClickMouseextendsMouseAdapter{publicvoidmouseClicked(MouseEventmouse){sum=mouse.getClickCount();if(sum==2){{{U}}pic=getImage(getAudioClip(),"hua.jpg");{{/U}}xPos=mouse.getX();yPos=mouse.getY();showStatus("鼠标单击点的坐标:("+mouse.getX()+","+mouse.getY()+")");}{{U}}paint();{{/U}}}}}{{B}}ex37_3.html:{{/B}}<html><head><title>ASimpleProgram</title></head><body><appletcode="Hua.class"width=800height=400></applet></body></html>
问答题本题程序的功能是用键盘上的方向键来控制直线的绘制方向。如果一直按向上的方向键,则在窗口中从焦点开始向上缓慢绘制直线,按其他方向的方向键也会向对应的方向缓慢地绘制直线。如果按下Shift键,绘制直线的速度会加快。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
public class advance
{
public static void main(String[] args)
{
SketchFrame frame = new SketchFrame();
frame.setDefaultCloseOperation(JFrame.EXIT ON CLOSE);
frame,show ();
}
}
class SketchFrame extends JFrame
{
public SketchFrame()
{
setTitle("advance");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
SketchPanel panel = new SketchPanel();
Container contentPane = getContentPane();
contentPane.add(panel);
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}
class SketchPanel extends JPanel
{
______;
{
last = new Point2D.Double(100,100);
lines = new ArrayList();
KeyHandler listener = new KeyHandler();
______;
setFocusable(true);
}
public void add(int dx,int dy)
{
Point2D end = new Point2D.Double(last.getX()+ dx,last.getY() + dy);
Line2D line = new Line2D.Double(last,end);
lines.add(line);
repaint();
last = end;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
for (int i = 0; i < lines.size(); i++)
g2 .draw ((Line2D) lines .get (i));
}
private Point2D last;
private ArrayList lines;
private static final int SMALL INCREMENT = i;
private static final int LARGE_INCREMENT = 5;
private class KeyHandler implements KeyListener
{
public void keyPressed(KeyEvent event)
{
______;
int d;
if (event.isShiftDown())
d = LARGE_INCREMENT;
else
d = SMALL_INCREMENT;
if(keyCode == KeyEvent.VK_LEFT)
add(-d,0);
else
if(keyCode == KeyEvent.VK_RIGHT)
add(d,0);
else
if(keyCode == KeyEvent.VK_UP)
add(0,-d);
else
if(keyCode == KeyEvent.VK DOWN)
add(0,d);
}
public void keyReleased(KeyEvent event)
{
}
public void keyTyped(KeyEvent event)
{
char keyChar = event.getKeyChar();
int d;
if (Charaeter.isUpperCase(keyChar))
{
d = LARGE_INCREMENT;
keyChar = Character.toLowerCase(keyChar);
}
else
d = SMALL_INCREMENT;
}
}
}
问答题下面是一个Applet程序,其功能是将完整的图像显示于Applet的区块中,然后可以通过拖动鼠标让图像随着鼠标拖动的轨迹而移动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下:
import java.applet.*;
import java.awt.*;
/*
<applet code="ex7_3.class" width=800 height=400 >
</applet>
*/
public class ex7_3 extends Applet
{
private Image iImg;
private int xPos,yPos;
public void init()
{
xPos = yPos = 0;
{{U}}iImg = getImage("ex7_3.jpg"){{/U}};
}
public void paint(Graphics g)
{
{{U}}g.drawImage(iImg,xPos,yPos){{/U}};
}
public boolean mouseDrag(Event e,int x, int y)
{
xPos = x;
yPos = y;
{{U}}paint(){{/U}};
return true;
}
}
ex7_3.html
<HTML>
<HEAD>
<TITLE>ex7_3</TITLE>
</HEAD>
<BODY>
<applet code="ex7_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
问答题本题的功能是用流式布局管理器来管理窗口中的按钮。在执行程序时指定生成按钮的个数,并把这些按钮都放置在流式布局管理器的窗口中。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class java2 public static void main(String[]args) if(args.length!=1) System.out.println("请指定按钮的个数!"); System.exit(0); String buttonString=args[0]; int buttonNumber=______; ButtonFrame frame=new ButtonFrame(buttonNurnber); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); class ButtonFrame extends JFrame public ButtonFrame(______) buttons=buttonNumber; setTitle("java2"); setSize(WIDTH,HEIGHT); JPanel buttonPanel=Dew JPanel(); for(int i=0;i<buttons;i++) JButton addButton=new JButton("add"+i); buttonPanel.add(addButton); Container contentPane=getContentPane(); contentPane.add(buttonPanel); public static final int WIDTH=350; public static final int HEIGHT=200; private int buttons;