问答题本题中,主窗口中有两个下拉菜单,一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。
import java.awt.*;
import java.awt.event.*;
class java3 extends Frame {
String[]figureNames={"圆形","椭圆形","正方形","长方形");
String[]colorNames={"红色","绿色","蓝色","黄色"};
Color[]colorValues={Color.red,Color.green,
Color.blue,Color.yellow);
Choice chFigure=new Choice();
Choice chColor=new Choice();
int curX,curY;
java3(){
super("java3");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(O);
}
});
Panel P=new Panel(new GridLayout(1,O));
for(int i=0;i ehFigure.addhem(figureNames[i]);
}
for(int i=0;i chColor.addhem(eolorNames[i]);
}
P.add(chColor);
P.add(chFigure);
add(p,BorderLayout.NORTH);
addMouseListener(this);
setSize(300,300);
show();
}
public void update(Graphics g){
g.getColor(colorValues[chColor,getSelectedIndex
()]);
switch(chFigure.getSelectedlndex()){
case 0;
g.fillOval(curX,curY,30,30);
break;
case l:
g.fillOval(curX,curY,30,50);
break;
case 2:
g.fillRect(curX,curY,30,30);
break;
case 3:
g.fillRect(curX,curY,30,50);
break;
}
}
class MouseEventListener implements MouseAda-
pter{
public void mousePressed(MouseEvent evt){
curX=evt.getX();
curY=evt.getY();
repaint();
}
}
static public void main(String[]args){
new java3();
}
)
问答题本题的功能是获得系统剪贴板中的内容。窗口中有一个菜单“Edit”和一个文本域,“Edit”中有菜单项“Cut”、“Copy”和“Paste”,在文本域中输入内容,可以通过菜单进行剪切、复制和粘贴操作,如果系统剪贴板为空,又做粘贴操作的话,则设置文本域中背景颜色为红色,并显示错误信息。 import java.awt.*; import java.io.*; import java.awt.datatransfer.*; import java.awt.event.*; class java3 extends Frame implements ActionListener,ClipboardOwner TextArea textArea=new TextArea(); java3() super("java3"); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); MenuBar mb=new MenuBar(); Menu m=new Menu("Edit"); setLayout(new BorderLayout()); add("Center",textArea); m.add("Cut"); m.add("Copy"); m.add("Paste"); mb.add(m); setMenuBar(this); for(int i=0;i<m.getItemCount();i++) m.item(i).addActionListener(this); setSize(300,300); show(); public void actionPerformed(ActionEvent evt) if("Paste".equals(evt.getActionCommand())) boolean error=true; Transferable t= getToolkit().getSystemClipboard().getContents(this); try if(t! =null textArea.setForeground(Color.black); textArea.replaceRange( (String)t.getTransferData(DataFlavor.stringFlavor), textArea.getSelectionStart(), textArea.getSelectionEnd()); error=false; catch(UnsupportedFlavorException e) catch(IOException e) if(error) textArea.setBackground(Color.red); textArea.setForeground(Color.white); textArea.repaint(); textArea.setText("ERROR:/nEither the clipboard"+"is empty or the contents is not a string."); else if("Copy".equals(evt.getActionCommand())) setContents(); else if("Cut".equals(evt.getActionCommand())) setContents(); textArea.replaceRange("",textAtea.getSelectionStart(),textArea.getSelectionEnd()); void setContents() S=textArea.getSelectedText(); StringSelection contents=new StringSelection(s); getToolkit().getSystemClipboard().setContents(contents,this); public void lostOwnership(Clipboard clipboard,Transferable contents) System.out.println("lost ownership"); public static void main(String args[]) new java3();
问答题请完成下列Java程序:用JFrame建立一个窗口,再用网格布局管理器,对窗口布局进行控制,上面有2行2列4个按钮,要求对按钮的大小进行设定,宽度为150,高度为80。 注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 import java. awt. * import java. awt. event. * import javax, swing. * public class ex2_1 public static void main(String[] args) JFrame frm = new JFrame.( ) frm. setTitle( "ex2_1") Container cont = frm. getContentPane( ) ______; cont. add(new JButton( "button1") ) cont. add(new JButton( "button2") ) Dimension dimen= ______; JButton btnl = new JButton( "button3" ) btnl. setpreferredSize(dimen); cont. add(btn1); cont. add(new JButton("button4") ); frm. addWindowListener (new WindowAdapter ( ) public void windowClosing (WindowEvent we) System. exit(0) ); frm. pack() frm. setVisible(true);
问答题System.exit(l);
问答题本程序的功能是用滑动条来控制画板中圆的大小。窗口中有一个画板和一个滑动条,画板中有一个黑色的实心圆,当拖动滑条上的滑块时,画板中圆的大小随之改变,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;publicclassexam_88extendsJFrame{privateJSliderdiameter;privateOvalPanelmyPanel;publicexam_88(){super("exam_88");myPanel=newOvalPanel();myPanel.setBackground(Color.white);diameter=newJSlider(SwingConstants.HORIZONTAL,0,200,10);diameter.setMajorTickSpacing(10);diameter.setPaintTicks(true);diameter.addChanqeListener(ChangeListener(){publicvoidstateChanged(ChangeEvente){myPanel.setDiameter(diameter.getValue());}});Containerc=getContentPane();c.add(diameter,BorderLayout.SOUTH);c.add(myPanel,BorderLayout.CENTER);setSize(220,270);show();}publicstaticvoidmain(Stringargs[]){exam_88app=newexam_88();app.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}classOvalPanelextendsJPanel{privateintdiameter=10;publicvoidpaintComponent(Graphicsg){this.paintComponent(g);g.fillOval(10,10,diameter,diameter);}publicvoidsetDiameter(){diameter=(d>=0?d:10);repaint();}publicDimensiongetPreferredSize(){returnnewDimension(200,200);}publicDimensiongetMinimumSize(){returngetPreferredSize();}}
问答题下面是一个Applet程序,程序的功能是用鼠标点击画图。本题是通过点击鼠标后画出一个“Java”字。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或减行。importjava.awt.*;importjava.awt.event.*;importjava.applet.*;/*<appletcode=SimpleHitMouse.javawidth=800height=400></applet>*/publicclassSimpleHitMouse{{U}}implements{{/U}}Applet{privatejava.util.Vectorpoints=newjava.util.Vector();publicvoidinit(){adclMouseListener(newMouseAdapter(){publicvoidmousePressed(MouseEvente){points.add(newPoint(e.getX(),e.getY()));{{U}}paint();{{/U}}}});}publicvoidupdate(Graphicsg){{{U}}repaint(g);{{/U}}}publicvoidpaint(Graphicsg){for(inti=0;i<points.size();i++){Pointdot=(Point)points.elementAt(i);g.drawString("x",dot.x,dot.y);}}publicstaticvoidmain(Stringargs[]){Framefram=newFrame("CelayTree");SimpleHitMousedot=newSimpleHitMouse();dot.init();dot.start();fram.add("Center",dot);fram.setSize(400,300);fram.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});fram.show();}}{{B}}ex32_3.html:{{/B}}<html><head><title>ASimpleProgram</title></head><body><appletcode="SimpleHitMouse.class"width=800height=400></applet></body></html>
问答题下面是一个Applet程序,其功能是打印一个任意进制的乘法表。要求输入乘法表的进制,点击确定则打印出该乘法表。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
import java.awt.*;
import java.applet.*;
import java.lang.*;
public class exl2_3 extends Applet{
private TextField tf;
private Button btn;
public void init(){
tf=new TextField(25);
add(tf);
btn=new Button("确定");
add(btn);
resize(250,200);
}
public void paint(Craphics g){
try{
int n= {{U}}tf.getText();{{/U}}
int i,j,x=20,y=60;
for({{U}}i=0;i<n;++{{/U}}){
for(j=1;j<=n;j++){
g.drawString(Integer.toString(i)+"*"
+Integer.toString(j)+"="
+Integer.toString(i*j),
i*x,j*y);
}
}
}
catch(NuaberFormatEXCeption nfe){
g.drawString("error namber!",20,50);
}
}
public boolean action(Event e,Object o){
if(o=="确定"){
repaint();
return true;
}
else
return false;
}
}
exl2_3.html
<HTML>
<HEAD>
<TITLE>exl2_3</TITLE>
</HEAD>
<BODY>
<applet code="exl2_3.class"width=800 height=400>
</applet>
</BODY>
</HTMI>
问答题10位同学参加某团队测试,要求每位同学都必须及格,同时团队平均分不少于80分,整个团队才能够通过。每位同学的成绩可以通过随机数产生(0~100)。请在程序的每条横线处填写一条语句,使程序的功能完整。 注意;请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 源程序文件代码清单如下: ______; public class While public static void main(String args[]) int fenshu=60; int sumfenshu=0; int i=1; while((fenshu>=60)&&(i<=10)) fenshu=(int)(______); System.out.println(fenshu+" "); sumfenshu+=fenshu; i++; System.out.println(); if(______) System.out.println("团队通过"); else System.out.println("团队测试不通过");
问答题下面是一个Applet程序,其功能是从3~100之间(包括3和100)每隔0.5秒显示一个新的数字,如果数字为素数,则显示为灰色,其他为绿色。请更正题中带下划线的部分。
注意:不改变程序的结构,不得增行或删行。
import java.awt.*;
import java.applet.Applet;
/*
<applet code="exl5_3.class"width=800 height=400>
</applet>
*/
public class ex15_3 extends Applet
{
public Color color15_3=Color.black;
private int n15_3=3;
public myPrime thPrimel5_3;
public void init()
{
thPrimel5_3=new myPrime(this);
thPrimel5_3.start();
}
public void paint(Graphics g)
{
g.setColor(Colorl5_3);
{{U}}g.drawString(n15_3,50,50){{/U}};
}
public int getInt()
{
return n15_3;
}
}
class myPrime extends Thread
{
ex15_3 objl5_3;
myPrime(ex15_3 o)
{
this.objl5_3=o;
}
public boolean isPrime(int n)
{
boolean bPrime=true;
int i=2;
if(n<3||n>100)
return false;
while(i<n-1
i++;
}
return bPrime;
}
public void run()
{
int i;
for(i=3;{{U}}i<100{{/U}};i++)
{
if(isPrime(i))
objl5_3.color15_3=Color.gray;
else
objl5_3.color15_3=Color.green;
{{U}}obj15_3.n15_3;{{/U}}
objl5_3.repaint();
try{
sleep(500);
}catch(InterruptedException ie) {}
}
}
}
exl5_3.html
<HTML>
<HEAD>
<TITLE>exl5_3</TITLE>
</HEAD>
<BODY>
<applet code="exl5_3.class" width=800 height=400>
</applet>
</BODY>
</HTML>
问答题本程序是一个Applet,功能是用下拉菜单来选择文本的字体、样式和大小。窗口中有一个文字标签和三个下拉菜单,下拉菜单分别用来设置文本的字体、样式和大小,字体下拉菜单中列出了当前系统中存在的所有字体,如图所示。importjavax.swing.*;importjavax.swing.event.*;importjavax.swing.border.*;importjava.awt.*;importjava.awt.event.*;importjava.awt.geom.*;publicclassexam_73extendsJApplet{DemoFontDisplayPaneldisplayPanel;JComboBoxfontsBox,fontStylesBox,fontSizesBox;String[]fontStyleLabels={"Plain","Bold","Italic","BoldintBOLDITALIC=Font.BOLD|Font.ITALIC;FONT[]fontStyles={Font.PLAIN,Font.BOLD,Font.ITALIC,BOLDITALIC};String[]fontSizeLabels={"8","9","10","11","12","14","18","25","36","72"};publicvoidinit(){Containercontainer=getContentPane();displayPanel=newDemoFontDisplayPanel();container.add(displayPanel);JPanelcontrolPanel=newJPanel();controlPanel.setLayout(newGridLayout(1,3));TitledBorderborder=newTitledBorder("选择字体、样式和大小...");controlPanel.setBorderTitle(border);fontsBox=newJComboBox(displayPanel.fontFamilyNames);fontsBox.setSelectedItem("Arial");fontsBox.addActionListener(newComboBoxListener());fontStylesBox=newJComboBox(fontStyleLabels);fontStylesBox.addActionListener(newComboBoxListener());fontSizesBox=newJComboBox(fontSizeLabels);fontSizesBox.setSelectedItem("36");fontSizesBox.addActionListener(newComboBoxListener());controlPanel.add(fontsBox);controlPanel.add(fontStylesBox);controlPanel.add(fontSizesBox);container.add(BorderLayout.SOUTH,controlPanel);}classCemboBoxListenerimplementsActionListener{publicvoidactionPerformed(ActionEvente){JComboBoxtempBox=(JComboBox)e.getSource();if(tempBox.equals(fontsBox)){displayPanel.fontFamilyName=(String)tempBox.getSelectedItem();displayPanel.repaint();}elseif(tempBox.equals(fontStylesBox)){displayPanel.fontStyle=fontStyles[tempBox.getSelectedIndex()];displayPanel.repaint();}elseif(tempBox.equals(fontSizesBox)){displayPanel.fontSize=Integer.parseInt((String)tempBox.getSelectedItem());displayPanel.repaint();}}}classDemoFontDisplayPanelextendsJPanel{StringdisplayText;FontcurrentFont;StringfontFamilyName;intfontStyle;intfontSize;GraphicsEnvironmentge;String[]fontFamilyNames;publicDemoFontDisplayPanel(){displayText="WelcometoChina(中国)!";fontFamilyName="Arial";fontStyle=Font.PLAIN;fontSize=36;System.out.println("LoadingFonts...PleaseWait...");ge=GraphicsEnvironment.getLocalGraphicsEnvironment();fontFamilyNames=ge.getAvailableFontFamilyNames();setBackground(Color.white);}publicvoidupdate(){g.clearRect(0,0,getWidth(),getHeight());paintComponent(g);}publicvoidpaintComponent(Graphicsg){super.paintComponent(g);Graphics2Dg2D=(Graphics2D)g;currentFont=newFont(fontFamilyName,fontStyle,fontSize);g2D.setFont(currentFont);g2D.drawString(displayText,25,100);}}}exam_73.html:<html><title>exam_73</title><body><appletcode="exam_73.class"width="300"height="300"></applet></body></html>
问答题本程序将字符串"Welcome to China!"转化为字符数组,并打印输出。
public class exam_49{
public static void main(String[] args){
String str="Welcome to China!";
char[] ch;
______;
______;
for(______)
System.out.print(ch[i]);
}
}
问答题本题程序的功能是计算1~10(包括1和10)中除5以外各个自然数的和。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 public class basic public static void main (String[] args) int i = 1; int sum = 0; while(i <= 10) if(i == 5) ______; ______; ______; i++; System.out.println ("sum="+sum);
问答题本程序的功能是设置窗口的背景色为黄色,大小为200×200,并设置面板的颜色为绿色,大小为100×100,位于窗口的左上角,如图所示。importjava.awt.*;importjava.awt.event.*;publicclassexam_6extendsFrame{publicstaticvoidmain(Stringargs[]){exam_6f=newexam_6("exam_6");Panelpan=newPanel();f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});f.setSize(200,200);f.setBackground(Color.yellow);f.setLayout(null);______;pan.setBackground(Color.green);f.add(pan);______;}publicexam_6(Stringstr){super(str);}}
问答题下面程序的功能是输出字符串“HGPEDCBA”, 请在程序的每条横线处填写一个适当的语句,使程序的功能完整。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
import java.io.*;
public class InputString{
public static void main(String args[ ]){
String stringname= new _______________ ("ABCDEFGH");
for(int i= _______________ i>=0;i--)
System.out.println(String.valueOf(stringname.________________));
}
}
问答题在1~n之间的自然数中,每次抽取k个数字来抽奖,计算中奖几率的算法为:n*(n-1)*(n-2)*...*(n-k+1)/1*2*3*...*k请完善Java_2.java文件,并进行调试,使程序先显示输入窗口如下:然后从自然数1~20中,每次抽3个数,计算中奖几率,并将最终结果在命令行中显示,其形式类似:你中奖的几率是1/1140.Goodluck!由于Java_2.java文件不完整,请在注释行“//*********Found********”下一行语句的下画线处填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序:importjavax.swing.*;publicclassJava_2publicstaticvoidmain(String[]args)//*********Found********Stringinput=______.showInputDialog("你想抽几位数?");//*********Found********intk=Integer.parselnt(______);input=JOptionPane.showInputDialog("你想在自然数中抽的最高数是几?");//*********Found********intn=______.parselnt(input);intlotteryOdds=1;for(inti=1;i<=k;i++)lotteryOdds=lotteryOdds*(n-i+1)/i;//*********Found********System.out.printIn(”你中奖的几率是1/"+______+".Goodluck!”);System.exit(0);
问答题import java.util.*;
public class TestGen0______{
public Hashtable<K,V>h=new Hashtable<K,V>();
public void put(K k,V v){
h.put(k,v);
}
public V get(K k){
return h.get(k);
}
public static void main(String args[]){
TestGen0<String,String>t=new TestGen0<String,String>();
t.put("key","value");
String s=t.get("key");
System.out.println(s);
}
}
问答题本程序显示一个进度条。程序运行时进度条开始计数,进度条的值是0~1000,每隔1秒钟增加50,如图所示。importjavax.swing.*;importjava.awt.event.*;publicclassexam_55extendsJFrame{JPaneljpanel1;JProgressBarjprogressbar1;publicexam_55(){super("exam_55");setSize(300,100);jpanel1=newJPanel();jprogressbar1=______;jprogressbar1.setValue(0);jprogressbar1.setStringPainted(true);jprogressbar1.setBorderPainted(true);jpanel1.add(jprogressbar1);this.getContentPane().add(jpanel1);}publicvoidprogressRun(){intprogressNum=0;while(progressNum<=1000){jprogressbar1.setValue(progressNum);try{Thread.sleep(1000);}catch(Exceptione){}______;}}publicstaticvoidmain(Stringas[]){exam_55tp=newexam_55();tp.show();tp.progressRun();tp.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}
问答题下面是一个Applet程序,其功能是实现网页上的电子时钟,要求显示的格式为hh:mm:ss如02:04:50。提示:通过获取当前系统时间来实现。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.applet.*;importjava.awt.*;importjava.util.Date;/*<appletcode=”ex9_3.Class”,width;800height=400></applet>*/publicclassex9_3extendsAppletimplementsRunnableprivateThreadthTimer:null;privateStringstrTime;privateinttHour,tMin,tSec;publicvoidinit()setFont(newFont("TimesNewRoman",Font.BOLD,20));publicvoidpaint(GraphicsGraph)DatedNow=newDate();tHour=dNow.getHours();tMin=dNow.getMinutes();tSec=dNow.getSeconds();if(tHour<=9)strTime="0"+tHour+":";elsestrTime=tHour+":";if(tMin<=9)strTime="0"+strTime+tMin+":";elsestrTime=strTime+tMin+":";if(tSec<=9)strTime="0"+strTime+tSec;elsestrTime=strTime+tSec;Graph.drawString(strTime,80,80);publicvoidstart()if(thTimer==null)thTimer=newThread();thTimer.start();publicvoidrun()while(thTimer!=null)repaint();tryThread.sleep(1000);catch(InterruptedExceptionie)publicvoidstop()thTimer=null;ex9_3.html<HTML><HEAD><TITLE>ex9_3</TITLE></HEAD><BODY><appletcode="ex9_3.class"width=800height=400></applet></BODY></HTML>
问答题下面是一个Applet程序,其功能是输入2个字符串,比较两者的长度。要求,窗口中有2个输入区,用于输入字符串,一个按钮点击实现比较,比较结果用绘图方式显示出来。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.applet.*;/*<appletcode="ex25_3.class"width=800height=400></applet>*/publicclassex25_3extendsAppletprivateTextFieldtf1;privateTextFieldtf2;privateButtonbtn;privateStringstrOut;publicvoidinit()Label1=newLabel("串1:");add(1);tf1=newTextField(20);add(tf1);l=newLabel("串2:");add(1);tf2=newTextField(20);add(tf2);btn=newButton("比较");add(btn);strOut="";resize(250,200);publicvoidpaint(Graphicsg)g.drawString(strOut,30,150);publicbooleanaction(Evente,Objecto)if(o=="btn")Stringstr1=tf1.getText();Stringstr2=tf2.getText();intresult;result=str1.compare(str2);if(result>0)strOut="串1种字符数少于串2";elseif(result==0)strOut="串1和串2长度一样";elsestrOut="串1字符数多于串2";repaint();//该方法主要用于applet的重新显示,它调用Update()方法实现对于Applet的更新。returntrue;elsereturnfalse;ex25_3.htm1<HTML><HEAD><TITLE>ex25_3</TITLE></HEAD><BODY><appletcode="ex25_3.class"width=800height=400></applet></BODY></HTML>
问答题本程序是一个Applet,功能是进行简单的实数四则运算,如图所示。importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassexam_63extendsJApplet{publicvoidinit(){ContainercontentPane=getContentPane();CalculatorPanelpanel=newCalculatorPanel();add(panel);}}classCalculatorPanelextendsJPanel{publicCalculatorPanel(){setLayout(newBorderLayout());result=0;lastCommand="=";start=true;display=newJTextField("0");display.setEditable(false);add(display,BorderLayout.NORTH);ActionListenerinsert=newInsertAction();ActionListenercommand=newCommandAction();panel=newJPanel();panel.setLayout(newGridLayout(4,4));addButton("7",insert);addButton("8",insert);addButton("9",insert);addButton("/",command);addButton("4",insert);addButton("5",insert);addButton("6",insert);addButton("*",command);addButton("1",insert);addButton("2",insert);addButton("3",insert);addButton("-",command);addButton("0",insert);addButton(".",insert);addButton("=",command);addButton("+",command);add(panel,BorderLayout.CENTER);}privatevoidaddButton(Stringlabel,ActionListenerlistener){JButtonbutton=newJButton(label);button.addActionListener(listener);panel.add(button);}privateclassInsertActionimplementsActionListener{publicvoidactionPerformed(ActionEventevent){Stringinput=event.getActionCommand();if(start){display.setText("");start=false;}display.settext(display.getText()+input);}}privateclassCommandActionimplementsActionListener{publicvoidactionPerformed(ActionEventevt){Stringcommand=evt.getActionCommand();if(start){if(command.equals("-")){display.setText(command);start=false;}elselastCommand=command;}else{calculate(Double.parseDouble(display.getText()));lastCommand=command;start=true;}}}publicdoublecalculate(doublex){if(lastCommand.equals("+"))result+=x;elseif(lastCommand.equals("-"))result-=x;elseif(lastCommand.equals("*"))result*=x;elseif(lastCommand.equals("/"))result/=x;elseif(lastCommand.equals("="))result=x;display.setText(""+result);}privateJTextFielddisplay;privateJPanelpanel;privatedoubleresult;privateStringlastCommand;privatebooleanstart;}
