问答题下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件清单如下:
import java.awt.*;
import java.applet.*;
/*
<applet code="ex11_3.class" width=800 height=400>
</applet>
*/
public class ex11_3 extends Applet
{
int[] x = {15,50,100,160,120,190};
int[] y = {15,100,30, 15, 80, 50};
public void init()
{
setBackground(Color.lightGray);
}
public void paint(Graphics g)
{
int[] y2 = new int[6];
g.setColor(Color.red);
Rectangle rect = getBounds();
{{U}}g.drawPolygon(x, y2,6){{/U}};
for(int i=0; i<6; i++)
{{U}}y2[i] = y[i] + (rect.height / 2){{/U}};
{{U}}g.fillPolygon(x,y, 6);{{/U}}
}
}
{{B}}ex11_3.html{{/B}}
<HTML>
<HEAD>
<TITLE>ex11_3</TITLE>
</HEAD>
<BODY>
<applet code="ex11_3.class" width=800 height=400>
</applet>
</BODY>
</HTML>
问答题下面是一个Applet程序,其功能是对输入的字符串进行抽取。要求给出抽取的子串在母串中的起始和终止位置,输出抽取出来的子串。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.applet.*;publicclassex26_3extendsApplet{TextFieldtf1;TextFieldtf2;TextFieldtf3;Buttonbtn;StringstrResult;publicvoidinit(){Label1=newLabel("字符串:");add(l);tf1=newTextField(20);add(tf1);l=newLabel("开始位置:");add(l);tf2=newTextField(5);add(tf2);l=newLabel("结束位置:");add(l);tf3=newTextField(5);add(tf3);btn=newButton("抽取");add(btn);strResult="".resize(250,200);}publicvoidpaint(Graphicsg){g.drawString("选中的子串为:",80,140);{{U}}g.drawString(strResult,80,140);{{/U}}}publicbooleanaction(Evente,Objecto){if(o=="抽取"){try{Stringstr1=tf1.getText();Stringstr2=tf2.getText();Stringstr3=tf3.getText();intfrom=Integer.parseInt(str2);int{{U}}to=Integer.parseInt(str1);{{/U}}{{U}}strResult=str1.substring(from,to-1);{{/U}}}catch(StringIndexOutOfBoundsExceptionse){strResult="字符索引越界!";}repaint();returntrue;}elsereturnfalse;}}{{B}}ex26_3.htm1{{/B}}<HTML><HEAD><TITLE>ex26_3</TITLE></HEAD><BODY><appletcode="ex26_3.class"width=800height=400></applet></BODY></HTML>
问答题本程序监听用户对单选按钮的选择。窗口中有一个文字标签和一组单选按钮,选中任意一个单选按钮后,文字标签中将显示出你所做出的选择,例如你选择了“四川”,则文字标签将显示为“你来自四川?”,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;publicclassexam_42{publicstaticvoidmain(String[]args){RadioButtonFrameframe=newRadioButtonFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();}}classRadioButtonFrameextendsJFrame{publicRadioButtonFrame(){setTitle("exam_42");setSize(WIDTH,HEIGHT);ContainercontentPane=getContentPane();myLabel=newJLabel("你来自北?",JLabeI.CENTER);contentPane.add(myLabel,BorderLayout.CENTER);radioPanel=newJPanel();myButtonGroup=______;addRadioButton("北京",true,"北京");addRadioButton("天津",false,"天津");addRadioButton("上海",false,"上海");addRadioButton("四川",false,"四川");contentPane.add(radioPanel,BorderLayout.SOUTH);}publicvoidaddRadioButton(Stringname,booleandefaultRadio,Stringshow){finalStringshowLabel=show;JRadioButtonbutton=______;myButtonGroup.add(button);radioPanel.add(button);button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevt){myLabel.setText("你来自"+showLabel+"?");}});}publicstaticfinalintWIDTH=300;publicstaticfinalintHEIGHT=140;privateJLabelmyLabel;privateButtonGroupmyButtonGroup;privateJPanelradioPanel;}
问答题本题程序的功能是求两个交叉图形的并、减、交及异或。窗口中有4个单选按钮和一个图形面板,面板中有两个交叉的图形,选中其中一个单选按钮,图形面板中会以黑色填充的方式显示运算的结果。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 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 AreaTestFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); class AreaTestFrame extends JFrame public AreaTestFrame() setTitle("advance"); setSize(WIDTH,HEIGHT); area1 = new Area(new Ellipse2D.Double(100,100,150,100)); area2 = new Area(new Rectangle2D.Double(150,150,150,100)); ______; panel = new JPanel() public void paintComponent(Graphics g) super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; g2.draw(area1); g2.draw(area2); if (area ! = null) g2.fill(area); contentPane.add(panel,BorderLayout.CENTER); JPanel buttonPanel = new JPanel(); ButtonGroup group = new ButtonGroup(); JRadioButton addButtoh = new JRadioButton("并",false); buttonPanel.add(addButton); group.add(addButton); addButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) area = new Area(); area.add(area1); area.add(area2); panel.repaint(); ); JRadioButton subtractButton = new JRadioButton("减",false); buttonPanel.add(subtractButton); group.add(subtractButton); subtractButton.addActionListener(new ActienListener() public void actionPerformed(ActionEvent event) area = new Area(); area.add(areal); ______; panel.repaint(); ); JRadioButton intersectButton = new JRadioButton("交",false); buttonPanel.add(intersectButton); group.add(intersectButton); intersectButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) area = new Area(); area.add(area1); area.intersect(area2); panel.repaint(); ); JRadioButten exclusiveOrButton = new JRadioButton("异或",false); buttonPanel.add(exclusiveOrButton); group.add(exclusiveOrButton); exclusiveOrButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) area = new Area(); area.add(area1); ______; panel,repaint (); ); contentPane.add(buttonPanel,BorderLayout.NORTH); private JPanel pane1; private Area area; private Area area1; private Area area2; private static final int WIDTH = 400; private static final int HEIGHT = 400;
问答题本题程序的功能是随机产生50个0~100间的随机数,并计算70~80间随机数的个数(包括70,不包括80)。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。
public class basic
{
public static void main(String[] args)
{
int result = 0;
int i = 0;
int randomNum;
while (i<50)
{
randomNum =______;
if(______)
result ++;
______;
}
System.out.println("result =" + result);
}
}
问答题下列程序中,定义了3个变量1,s,b,类型分别为long,short,byte并赋了初始值,分别为-1,1,-1,要求对1做按位左移运算,对s做按位右移运算,对b做无符号按位右移运算,移动的位数均为10位。请将程序补充完整。
程序运行结果如下:
-1024
0
-1
public class ex8_1 {
public static void main(String[]args) {
long 1:-1;
___________;
System.out.println(1);
short s = 1;
___________;
System.out.println(s);
byte b =-1;
__________;
System.out.println(b);
}
}
问答题简单应用题
请完成下列Java程序:建立一个String类型的数组,实现该数组的自然排序,并输出结果。该数组采用直接初始化,大小不限。(提示:使用Collections接口。)
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
程序运行结果如下:
fang
liu
ouyang
sun
wu
zhang
import java.util.*;
public class ex5_2 {
public static void main(String[] args) {
Vector vName=new Vector();
String[] strName={"zhang","sun","wu","liu","fang","ouyang"};
for(int i=0;i
问答题本题读取用户输入的字符流,直到用户输入字符串quit后结束。 import java.io.*; public class java1 public static void main(String[]args) ______; BufferedReader in; ir=new InputStreamReader(System.in); in=new BufferedReader(ir); System.out.println("please input:"); while(______) try String s=in.readLine(); System.out.println("echo:"+s); if(s.equals("quit")) ______; catch(Exception e)
问答题本题的功能是展示4种不同的对话框。窗口中有4个按钮:“消息”、“输入”、“确定”和“选择”,单击任意一个按钮,就能弹出一个对应的对话框。其中,消息对话框只有一个提示信息和一个“确定”按钮,输入对话框有一个供输入的文本框及“确定”和“撤销”两个按钮;确定对话框中有一个提示信息和三个按钮“是”、“否”和“撤销”;而选择对话框中有一个提示信息和两个按钮“确定”和“取消”。 import javax.swing.*; import java.awt.event.*; import java.awt.*; public class java3 extends JFrame implements ButtonSelecteActionListener JButton btnMessage=new JButton("消息"); JButton btnInput=new JButton("输入"); JButton btnConfirm=new JButton("确认"); JButton btnOption=new JButton("选择"); public java3() super("java3"); btnMessage.addActionListener(this); btnInput.addActionListener(this); btnConfirm.addActionListener(this); btnOption.addActionListener(this); getContentPane().setLayout(new FlowLayout()); getContentPane().add(btnMessage); getContentPane().add(btnInput); getContentPane().add(btnConfirm); getContentPane().add(btnOption); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public static void main(String args[]) java3 fr=new java3(); fr.pack(); fr.setVisible(true); Public void actionperformed(ActionEvent e) Object[]opt="确认","取消"; JButton instance=(JButton)e.getObject(); if(instance==btnMessage) JOptionPane.sbowMessageDialog(this,"消息对话框"); else if(instance==btnInput) JOptionPane.showInputDialog(this,"输入对话框"); else if(instance==btnConfirm) JOptionPane.showConfirmDialog(this,"确认对话框"); else JOptionPane.showOptionDialog(this,"选择对话框","选择",JOptionPane.YES_OPTION,JOptionPane,QUESTION_MESSAGE,null,opt,opt[1]);
问答题本题统计score[]={37,89,63,60,59,78,91)中成绩不及格的人数。
public class javal{
public static void main(String[]args){
int score[]={37,89,63,60,59,78,91),
int sum=0:
int i=0;
while(i if(score[i]>=60){
;
;
}
;
i++;
}
System.OUt.println("below 60 sum:"+sum);
}
}
问答题本程序中,主窗口有一个按钮“显示Dialog”,单击该按钮后显示一个对话框,对话框的标题是“Dialog”,其上有一个文字标签“欢迎学习Java.”,此时仍允许对原来窗口进行操作,当关闭新生成的对话框时退出程序,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassexam_28extendsFrameimplementsActionListener{publicstaticvoidmain(Stringargs[]){exam_28f=newexam_28("exam_28");Panelpan=newPanel();f.init();}publicexam_28(Stringstr){super(str);}publicvoidinit(){addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});setSize(200,200);setLayout(newFlowLayout());but=newButton("显示Dialog");add(but);but.addActionListener(this);dlg=newDialog(this,"Dialog",______);dlg.setSize(100,50);dlg.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){______;}});dlg.add("Center",newLabel("欢迎学习Java."));setVisible(true);}publicvoidactionPerformed(ActionEvente){dlg.setVisible(true);}privateDialogdlg;privateButtonbut;}
问答题System.out.println("没有鞍点!");
问答题本程序的功能是通过单选按钮来控制面板的边框显示风格。窗口中有6个单选按钮,分别代表不同的边框显示的风格,选中任意一个按钮,边框的风格变显示为选中按钮所对应的风格,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;publicclassexam_29{publicstaticvoidmain(String[]args){BorderFrameframe=newBorderFrame();frame.setDefaultClcseOperation(JFrame.EXIT_ON_CLOSE);frame.show();}}classBorderFrameextendsJFrame{publicBorderFrame(){setTitle("exam_29");setSize(WIDTH,HEIGHT);ContainercontentPane=getContentPane();buttonPanel=newJPanel();group=newButtonGroup();addRadioButton("低斜面边界",BorderFactory.createLoweredBevelBorder());addRadioButton("凸斜面边界",BorderFactory.createRaisedBevelBorder());addRadioButton("蚀刻边界",BorderFactory.createEtchedBorder());addRadioButton("直线边界",BorderFactory.createLineBorder(Color.blue));addRadioButton("不光滑边界",BorderFactory.createMatteBorder(5,5,5,5,Color.yellow));addRadioButton("空边界",BorderFactory.createEmptyBorder());Borderborder=BorderFactory.createEmptyBorder();Bordertitled=BorderFactory.createTitledBorder(border,"Bordertypes");buttonPanel.setBorder(______);contentPane.add(buttonPanel);}publicvoidaddRadioButton(StringbuttonName,finalBorderb){JRadioButtonbutton=newJRadioButton(buttonName);button.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){Bordertitled=BorderFactory.createTitledBorder(b,"Bordertypes");buttonPanel.setBorder(titled);______;}});group.add(button);buttonPanel.add(button);}publicstaticfinalintWIDTH=600;publicstaticfinalintHEIGHT=200;privateJPanelbuttonPanel;privateButtonGroupgroup;}
问答题本程序分行打印输出了当前系统中所有字体的名称。
______;
public class exam_38
{
public static void main (String[] args)
{
String[] fontNames=GraphicsEnvironment
.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
for (int i=0; ______; i++)
System.out.println(fontNames[i]);
}
}
问答题本题的功能是用冒泡法对数组元素arr[]={30,1,-9,70}进行从小到大排列。冒泡法排序是比较相邻的两个元素的大小,然后把小的元素交换到前面。
问答题下面是一个Applet程序,其功能是在窗口中绘制3个半径递增的圆,并用RGB三原色对这 3个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java.applet.*; import java.awt.*; import java.awt.*; /* <applet code="ex15_3.class"width=800 height=400> </applet> */ class CanvasCircle extends Canvas private Color cCircle; public CanvasCircle(Color c) cCircle=c; public void paint(Graphics g) int dimCircle,xCircle,yCircle; Dimension sizeCurrent=getSize(); if(sizeCurrent.width>sizeCurrent.height) dimCircle=sizeCurrent.width; else dimCircle=sizeCurrent.height; g.setColor(cCircle); xCircle=(sizeCurrent.heighe-dimCircle)/2; yCircle=(sizeCurrent.width-dimCircle)/2; g.fillOval(xCircle,yCircle,dimCircle,dimCircle); public class exl5_3 extends Applet public void init() GridBagLayout gbl=new GddBagLayout(); GridBagConstraints gbc=new CridBagConstraints(); CanvasCircle circleNew; setLayout(gbl); gbc.weightx=1.0; gbc.weighty=1.0; gbc.fill=GridBagConstraints.BOTH; circleNew=new CanvasCircle(Color.red); gbl.setConstraints(circleNew,gbc); add(circleNeW); gbc.weightx=1.5; gbc.weighty=1.5; circleNew=new CanvasCircle(Color.green); gbl.sctConstraints(eircleNew,gbc); add(circleNew); gbc.weightx=2.0; gbc.weighty=2.0; circleNew=new CanvasCircle(Color.blue); gbl.setConstraints(circleNew,gbc); add(circleNew); ex15_3.html <HTML> <HEAD> <TITLE>ex15_3</TITLE> </HEAD> <BODY> <applet code="ex15_3.class"width=800 height=400> </applet> </BODY> </HTMI>
问答题本题程序的功能是随机产生一个1~10的随机数,根据提示,用户可以猜这个随机数。例如程序随机产生的随机数是7,如果输入8,则提示“Try smaller…”并继续提示输入;如果输出6,则提示“Try bigger…”并继续提示输入;如果输入7,则会输出“Great!”并退出程序。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。
import java.io.*;
public class basic
{
public static void main(String[] args)
{
InputStreamReader it;
Bur feredReader in;
Ir = new InputStreamReader(System.in)
In = new BufferedReader(ir);
int ranNum = ______;
int guessNum = -1;
String str;
while (______)
{
System.out.print ("Please Input:");
try
{
______;
guessNum = Integer.parseInt(str);
}
catch (Exception e)
{
}
if(guessNum > ranNum)
System.out.println("Try smaller...");
else
System.out.println("Try bigger...");
}
System.out.println ("Great ! ");
}
}
问答题下面是打印输出所有和为10000的连续整数(如:1998,1999,2000,2001,2002)的程序,请在每条横线处填写适当语句,使程序的功能完整。 注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class Sum10000 public static void main(String args[ ]) int i; int j; int k; int sum; for(i=1;i<=10000;______________) sum=0; j=i; __________________; while(sum<10000) ______________ if(sum==10000) for(k=i;k<=j;k++) System.out.println(k+ ""); System.out.println("********");
问答题下面的Applet程序,其功能为画一个正方形,大小140*140,其背景色为蓝色(其填充色为pink色,各边离Applet的边为10像素)和一个在填充的正方形中自右上到左下来回移动的小球(半径15)。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。注意:不改动程序的结构,不得增行或删行。程序的执行结果为:importjava.awt.*;importjava.applet.*;/*<appletcode=BallAnimwidth=800height=600></applet>*///画一个正方形和一个移动的球,实现了Runnable接口。publicclassBallAnimextendsAppletimplementsRunnable{ThreadanimThread;intballX=100;//球的x坐标intbally;10;//球的Y坐标intballDirection=0;//球移动的方向标志:0表示从上向下移动,1表示从下向上移动publicvoidinit(){{{U}}super.setBackground(Color.blue);{{/U}}}publicvoidstart(){if({{U}}animThread!=null{{/U}}){animThread=newThread(this);animThread.start();}}publicvoidstop(){animThread.stop();animThread=null;}//实现Runnable接publicvoidrun(){Thread.currentThread().setPriority(Thread.NORM_PRIORITY);//设置线呈优先级NORM_PRIORITYwhile(true){moveBall();try{Thread.sleep(100);//休眠0.1秒}catch(ExceptionsleepProblem){//Thisappletignoresanyexceptionsifithasaproblemsleeping.//MaybeitshouldtakeSominex}}}privatevoidmoveBall(){//球对角运动if(ballDirection==0){ballX-=2;//如果球从左向右运动,球的X坐标减少2ballY+=2;//如果球从上向下运动,球的Y坐标增加2if(ballY>100)//球的Y坐标增加到100,改变球的运动方向{ballDirection=1;ballX=10;ballY=100;}}else{ballX+=2;//如果球从右向左运动,球的X坐标增加2ballY-=2;//如果球从下向上运动,球的Y坐标减少2if(bally<=10)//球的X坐标减少到10,改变球的运动方向{ballDirection=0;ballX=100;ballY=10;}}{{U}}paint();{{/U}}}publicvoidpaint(Graphicsg){g.setColor(Color.pink);g.fillRect(10,10,120,120);g.setColor(Color.green);g.fillOval(ballX,ballY,30,30);}}{{B}}ex40_3.html:{{/B}}<html><head><title>ex40_3</title></head><body><appletcode="BallAnim.class"width=800height=400></applet></body></html>
问答题本题中,在窗口右侧添加了一个菜单,右侧为一个文本域,菜单有“File”和“Help”,“File”菜单中有菜单项“New”、“Open”、“Save”、“Save as”和“Exit”,其中“Open”的快捷键为<Ctrl+O>,“Save”的快捷键为<Ctrl+S>,而“Help”菜单以及其中的菜单项“Index”和“About”没定了第一个字母为其快捷字母,通过鼠标单击任一个菜单项或通过快捷键以及快捷字母,都能在后台输入所选择的菜单项。 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class java2 extends JFrame______ private JMenuItem saveItem; private JMenuItem saveAsItem; private JPopupMenu popup; private JTextArea textArea; public java2() setTitle("java2"); setSize(400,300); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); textArea=new JTextArea(0,0); Container contentPane=getContentPane(); contentPane.add(new JScrollPane(textArea),"Center"); JMenuBar menuBar=new JMenuBar(); menuBar.setLayout(new BoxLayout(menuBar,BoxLayout.Y_AXIS)); getContentPane().add(menuBar,BorderLayout.WEST); HorizontalMenu fileMenu=new HorizontalMenu("File"); fileMenu.addMenuListener(this); JMenuItem openItem=new JMenuItem("Open"); openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0,InputEvent.CTRL_MASK)); saveItem=new JMenuItem("Save"); saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); saveAsItem=new JMenuItem("Save As"); menuBar.add(makeMenu(fileMenu, new Object[] "New",openItem,null,saveItem,saveAsItem,null,"Exit" ,this)); HorizontalMenu helpMenu=new HorizontalMenu("Help"); helpMenu.______('H'); menuBar.add(Box.createVerticalGlue()); menuBar.add(makeMenu(helpMenu, new Object[] new JMenuItem("Index",'I'), new JMenuItem("About",'A') ,this)); public void actionPerformed(ActionEvent evt) String arg=evt.getActionCommand(); System.out.println(arg); if(arg.equals("Exit")) System.exit(0); public void menuSelected(MenuEvent evt) public void menuDeselected(MenuEvent evt) public void menuCanceled(MenuEvent evt) public HorizontalMenu makeMenu(Object parent,Object[]items,Object target) HorizontalMenu m=null; if(parent instanceof HorizontalMenu) m=(HorizontalMenu)parent; else if(parent instanceof String) m=new HorizontalMenu((String)parent); else return null; m.setMinimumSize(m.getPrefeHedSize()); for(int i=0;i<items.length;i++) if(items[i]==null) m.addSeparator(); else m.add(makeMenuItem(items[i],target)); return m; public static JMenuItem makeMenuItem(Object item,Object target) JMenuItem r=null; if(item instanceof String) r=new JMenuItem((String)item); else if(item instanceof JMenuItem) r=(JMenuItem)item; else return null; if(target instanceof ActionListener) r.addActionListener((ActionListener)target); return r; class HorizontalMenu extends JMenu HorizontalMenu(String label) super(label); JPopupMenu pm=getPopupMenu(); pm.setLayout(new BoxLayout(pm,BoxLayout.X_AXIS)); setMinimumSize(getPreferredSize()); public static void main(string[]args) Frame f=new java2(); f.show();
