问答题下列程序中,给出两个整数2和3,分别求2除以3和2乘以3的结果,要求调用类ex1_1的方法method()来输出相应的结果,请将程序补充完整。程序运行结果如下:
0.6666666666666666
6
public class ex1_1{
public static void main(String[]args) {
int n1=2,n2=3;
ex1_1 obj1_1=new ex1_1();
obj1_1. ______;
}
public void method(int x,int y){
System.out.println(______);
System.out.println(______);
}
}
问答题本程序的功能是用键盘上的方向键来控制直线的绘制方向。如果一直按下向上的方向键,则在窗口中从焦点开始向上缓慢绘制直线,按下其他方向的方向键也会向对应的方向缓慢的绘制直线,如果按下Shift键,绘制直线的速度会加快,如图所示。importjava.awt.*;importjava.awt.geom.*;importjava.util.*;importjava.awt.event.*;importjavax.swing.*;publicclassexam_60{publicstaticvoidmain(String[]args){SketchFrameframe=newSketchFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();}}classSketchFrameextendsJFrame{publicSketchFrame(){setTitle("exam_60");setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);SketchPanelpanel=newSketchPanel();ContainercontentPane=getContentPane();contentPane.add(panel);}publicstaticfinalintDEFAULT_WIDTH=300;publicstaticfinalintDEFAULT_HEIGHT=200;}classSketchPanelextendsJPanel{publicvoidSketchPanel(){last=newPoint2D.Double(100,100);lines=newArrayList();KeyHandlerlistener=newKeyHandler();addKeyListener(this);setFocusable(true);}publicvoidadd(intdx,intdy){Point2Dend=newPoint2D.Double(last.getX()+dx,last.getY()+dy);Line2Dline=newLine2D.Double(last,end);lines.add(line);repaint();last=end;}publicvoidpaintComponent(Graphicsg){super.paintComponent(g);Graphics2Dg2=(Graphics2D)g;for(inti=0;i<lines.size();i++)g2.draw((Line2D)lines.get(i));}privatePoint2Dlast;privateArrayListlines;privatestaticfinalintSMALL_INCREMENT=1;privatestaticfinalintLARGE_INCREMENT=5;privateclassKeyHandlerimplementsKeyListener{publicvoidkeyPressed(KeyEventevent){KEYkeyCode=event.getKeyCode();intd;if(event.isShiftDown())d=LARGE_INCREMENT;elsed=SMALL_INCREMENT;if(keyCode==KeyEvent.VK_LEFT)add(-d,0);elseif(keyCode==KeyEvent.VK_RIGHT)add(d,0);elseif(keyCode==KeyEvent.VK_UP)add(0,-d);elseif(keyCode==KeyEvent.VK_DOWN)add(0,d);}publicvoidkeyReleased(KeyEventevent){}publicvoidkeyTyped(KeyEventevent){charkeyChar=event.getKeyChar();intd;if(Character.isUpperCase(keyChar)){d=LARGE_INCREMENT;keyChar=Character.toLowerCase(keyChar);}elsed=SMALL_INCREMENT;}}}
问答题下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条"Welcome to the NCR Examination!"信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 源程序文件代码清单如下: import javax.swing.*; import java.awt.*; import java.awt.event.*; /* <applet code="ex13_3.class" width=800 height=400 > </applet> */ public class ex13_3 extends JApplet JButton jb = new JButton("Add Text"); JTextPane jtp = new JTextPane(); public void init() jb.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) for(int i = 1; i < 10; i++) jtp.geText(jtp.setText() + "Welcome to the NCR Examination!/n"); ); Container cp = getContentPane(); cp.add(new JScrollPane(jtp)); cp.add(BorderLayout. SOUTH, jtp); public static void main(String[] args) ex13_3 objl3_3=new ex13_3(); String str = obj13_3.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(ex13_3); frm.setSize(300, 400); frm.setVisible(true); ex13_3.html <HTML> <HEAD> <TITLE>ex13_3</TITLE> </HEAD> <BODY> <applet code="ex13_3.class" width=800 height=400 > </applet> </BODY> </HTML>
问答题下面是一个线程控制的例子,请在下画线处加入代码完成程序。
public class ThreadTest{
public static void main(String args[])throws Exception{
int i=0;
______; //创建显示"Hello"的线程
t.start();
while(true){
System.out.println("Good morning"+i++);
if(i==2
______ //等待t运行结束
}
if(i==5)break;
}
}
}
class Hello extends Thread{
int i;
public void run(){
while(true){
System.out.println("Hello"+i++);
if(i==5)break;
}
}
}
问答题下面是一个Applet程序,其功能是实现一个计数器,每隔0.15秒计数器数值加1,数值动态变化,并且能够控制计数器的暂停和继续。要求通过使用swing的构件建立图形用户界面,主要包括一个文本区域,用于显示计数器结果;两个按钮,一个使计数器暂停,一个使计数器继续工作。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。
import javax, swing. *
import java. awt. *
import java. awt. event. *
/*
<applet code= "ex4_2. class" width=800 height=400>
</applet>
*/
public class ex4_2 extends JApplet {
private JTextField jtf=new JTextField(15);
private JButton Hold = new JButton ("Hold"), resume = new JButton ( "Resume" );
private ex4_2th obj4_2th= new ex4_2th();
class ex4_2th extends Thread {
private int cnt=0;
private boolean bIsHold=false;
public ex4_2th() {start(); }
public void hold() {
bIsHold=true
}
public synchronized void fauxResume() {
bIsHold=false;
{{U}}wait( ){{/U}};
}
public void run() {
while (true) {
try {
sleep(150)
synchronized(this) {
while(bIsHold)
{{U}}notify( ){{/U}};
}
} catch(InterruptedException ie) {
System. err. println("Interrupted");
}
{{U}}jtf. setText(cnt){{/U}};
}
}
}
public void init() {
Container cp = getContentPane( )
cp. setLayout(new FlowLayout( ) );
cp. add(jtf)
Hold. addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent ae) {
obj4_2th. hold()
}
});
cp. add(Hold);
resume, addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e)
obj4_2th. fauxResume( )
}
});
cp. add(resume)
}
public static void main(String[] args) {
ex4_2 obj4_2 =new ex4_2()
String str= obj4_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(0);
}
});
frm. getContentPane(), add(obj4_2)
frm. setSize(300,200)
obj4_2. init()
obj4_2. start( );
frm. setVisible(true)
}
}
ex4_2. html
<HTML>
<HEAD>
<TITLE>ex4_2</TITLE>
</HEAD>
<BODY>
<applet code="ex4_2. class" width=800 height=400
</applet>
</BODY>
</HTML>
问答题注意:下面出现的“考生文件夹”均为%USER%。 在考生文件夹中存有文件名为Java_1.java文件,请完善Java_1.java文件,并进行调试,使程序结果为 a b c d e f g h i 由于Java_1.java文件不完整,请在注释行“//*********Found*********”下一行语句的下画线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。 给定源程序: import Java.io.*; public class Java_1 public static void main(String[]args) char[]charArray='a','b','c','d','e','f','g','h','i'; char c; try //*********Found********** DataOutputStream out=new______( new FileOutputStream("test.dat")); for(int i=0; i<charArray length; i++) out.writeChar(charArray[i]); out.close(); DataInputStream in=new DataInputStream( //*********Found********** new FilelnputStream("______")); while(in.available()!=0) c=in.readChar(); System.out.print(c+""); System.out.println(); //*********Found********** in______(); catch(IOException e))
问答题请在下画线上填写适当内容,使程序能正常运行。
import java.util.*;
public class KeyInputTest{
public static void main(String[]args){
Scanner ______=new Scanner(System.in);
System.out.print("您贵姓?(如:王)");
String familyName=in.nextLine();
System.out.print("您多大了?(如:21)");
int age=in.______;
System.out.println("喂,"+familyName+",明年您就"+(______)+"了。");
}
}
问答题下面程序是判断某一个是否为闰年,请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。(闰年的条件是符合下面两者之一:①能被4整除,但不能被100整除;②能被4整除,又能被100整除)。 注意:不改动程序的结构,不得增行或删行。 import java.io.*; public class LeapYear public static void main(String args[]) int year=1979; if((year %4= =0 || year % 100 !=0) || (year % 400= =0)) System.out.println(year+"是闰年."); else System.out.println(year+"不是闰年。"); year=2000; boolean leap; if(year % 4 !=0) leap=false; else if(year % 100 !=0) leap=true; else if(year % 400 !=0) leap=false; else leap=true; if(______) System.out.println(year+"是闰年。"); else System.out.println(year+"不是闰年。"); year=2010; if(year % 4= =0) if(year % 100= =0) if(year % 400= =0) leap=true; else ______ else leap=false; if(1eap= =true); System.out.println(year+"是闰年。"); else System.out.println(year+"不是闰年。");
问答题本程序是一个表格式的程序单,其中包括“姓名”、“英语成绩”、“数学成绩”和“总成绩”,姓名和成绩都可以进行修改,单击“计算每人总成绩”按钮,则可以统计出每个人的总成绩并显示在总成绩栏中(注意:输入成绩后回车数据才真正录入),如图所示。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassexam_99extendsJFrameimplementsActionListener{JTabletable;Objecta[][];Objectname[]={"姓名","英语成绩","数学成绩","总成绩"};JButtonbutton;exam_99(){setTitle("exam_99");a=newObject[8][4];for(inti=0;i<8;i++){for(intj=0;j<4;j++){if(j!=0)a[i][j]="";elsea[i][j]="";}}button=newJButton("计算每人总成绩");table=______;button.addActionListener(this);getContentPane().add(newJScrollPane(table),BorderLayout.CENTERgetContentPane().add(button,BorderLayout.SOUTH);setSize(400,200);setVisible(true);validate();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEvente){for(inti=0;i<8;i++){doublesum=0;booleanboo=true;for(intj=1;j<=2;j++){try{sum=sum+Double.parseDouble(______);}catch(Exceptionee){boo=false;table.repaint();}if(boo==true){a[i][3]=""+sum;table,repaint();}}}}publicstaticvoidmain(Stringargs[]){exam_99Win=newexam_99();}}
问答题本程序的功能是用下拉菜单来设置显示日期和时间的格式。程序中有一个下拉菜单和一个文本框,在下拉菜单中选中某种格式,则对应的文本框中显示该格式的日期或时间,也可以在下拉菜单中输入日期或时间的格式字符串,直接回车,文本框中可显示对应格式的日期或时间,如果输入格式错误,则显示提示信息,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;importjava.util.*;importjava.text.*;publicclassexam_83extendsJPanel{staticJFrameframe;JLabelresult;StringcurrentPattern;publicexam_83(){String[]patternExamples={"ddMMMMMyyyy","dd.MM.yy","MM/dd/yy","yyyy.MM.ddG"at"hh:mm:ssz","EEE,MMMd,""yy","h:mma","H:mm:ss:SSS","K:mma,z","yyyy.MMMMM.ddGGGhh:mmaaa"};currentPattern=patternExamples[0];JLabelpatternLabel1=newJLabel("输入格式字符串");JLabelpatternLabel2=newJLabel("或者从下面的列表中选择:");JComboBoxpatternList=newJComboBox(patternExamples);patternList.setEdit(true);patternList.setAlignmentX(Component.LEFT_ALIGNMENT);patternList.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){JComboBoxcb=(JComboBox)e.getSource();StringnewSelection=cb.getSelectedItem();currentPattern=newSelection;reformat();}});JLabelresultLabel=newJLabel("当前的日期/时间",JLabel.LEFT);result=newJLabel("");result.setForeground(Color.black);result.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.black),BorderFactory.createEmptyBorder(5,5,5,5)));JPanelpatternPanel=newJPanel();patternPanel.setLayout(newBoxLayout(patternPanel,BoxLayout.Y_AXIS));patternPanel.add(patternLabel1);patternPanel.add(patternLabel2);patternPanel.add(patternList);JPanelresultPanel=newJPanel();resultPanel.setLayout(newGridLayout(0,1));resultPanel.add(resultLabel);resultPanel.add(result);setLayout(newBoxLayout(this,BoxLayout.Y_AXIS));patternPanel.setAlignmentX(Component.LEFT_ALIGNMENT);resultPanel.setAlignmentX(Component.LEFT_ALIGNMENT);add(patternPanel);add(Box.createRigidArea(newDimension(0,10)));add(resultPanel);setBorder(BorderFactory.createEmptyBorder(10,10,10,10));reformat();}publicvoidreformat(){Datetoday=newDate();SimpleDateFormatformatter=newSimpleDateFormat(currentPattern);try{StringdateString=formatter.format(today);result.setForeground(Color.black);result.setText(dateString);}catch(IllegalArgumentExceptioniae){result.setForeground(Color.red);result.setText("错误:"+iae.getMessage());}}publicstaticvoidmain(Strings[]){frame=newJFrame("exam_83");frame.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});frame.addContentPane(newexam_83());frame.pack();frame.setVisible(true);}}
问答题请完成下列Java程序:使用JTabbedPane在窗口顶部建立一个图形标签,包含有两个标签窗格,一个使用简单标签(Labe1)显示欢迎信息,一个使用按钮和图标。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运经结果如下:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassex8_2extendsJPane1{publicex8_2(){JTabbedPanejtp=newJTabbedPane(SwingConstants.BOTTOM);Iconicon=newImageIcon("icon.gif");JButtonbtn=newJButton(icon);JLabell=newJLabel("WelcometotheNCRExamination!");______________;______________;setLayout(newBorderLayout());add(jtp,"Center");}publicstaticvoidmain(Stringargs[]){ex8_2obi8_2=newex8_2();Stringstr=obj8_2.getClass().toString();if(str.indexOf("class")!=-1)str=str.substring(6);JFramefrm=newJFrame(str);frm.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEventwe){System.exit(O);}});frm.getContentPane().add(obj8_2);frm.setSize(300,200);frm.setVisible(true);}}
问答题下面是一个Applet程序,其功能是输入3个双精度浮点数:a,b,c,构成一个一元二次方程,a*x*x+b*x+c=0,其判别式d=b*b-4*a*c,若d为负数则输出“没有实根”,否则打印出2个实根。要求,有3个输入框,输入a,b,c,一个按钮,点击实现求根过程,一个不可编辑的文本区,用作输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java. io. * import java. awt. * import java. awt. event. * import java. applet. Applet; /* <applet code="ex3_1. class" width=800 height=400> </applet> */ public class ex3_1 extends Applet implements ActionListener Panel pane= new Panel(); Label 11=new Label("a: ") TextField tf1 =new TextField(5) Label 12 = new Label ("b: ") TextField tf2=new TextField(5); Label 13=new Label("c:") TextField tf3=new TextField(5); Button btn= new Button("OK") Label 14=new Label("答案") TextField tf4=new TextField(20); ex3_1 obj3_1 public void init() pane. setLayout( new FlowLayout (FlowLayout. LEFT, 10,5 ) ) pane. add(11) pane. add(tf1) pane. add(12) pane. add(tf2) add( "North", pane) Panel p2=new Panel(); p2. setLayout ( new FlowLayout ( FlowLayout. LEFT, 10, 5) ) p2. add(13); p2. add(tf3) p2. add(btn) btn. addActionListener(this); add("Center",p2) Panel p3=new Panel () p3. setLayout ( new FlowLayout (FlowLayout. LEFT, 10,5 ) ) p3. add(14) tf4. setEditable(false) p3. add(tf4) add("South" ,p3) obj3_1 = new ex3_1 ( ) public void doReal(double a1,double a2,double a3,TextField tf) double d, x1, x2 d=a1 * a1-4.0 * a2 * a3; if(d>=0.0) x1=(-a2+Math. sqrt(d))/(2.0 * a1); x2=(-a2+Math. sqrt(d))/(2.0 * a1); tr. setText("2个实根:x1="+x1+"/nx2="+x2); else tr. setText ( "没有实根!") public void actionPerformed(ActionEvent ae) double a, b, c; try a= new Double(tf1. getText( ) ). doubleValue( ); b= new Double(tf2. getText( ) ). doubleValue( ); c= new Double(tf3. getText( ) ). doubleValue( ); obj3_1, doReal(a,b,c, 14); catch(NumberFormatException nfe) tf4. setText( "wrong number!") ex3_l. html <HTML> <HEAD> <TITLE> ex3_l </TITLE> </HEAD> <BODY> <applet code="ex3_l, class" width=800 height=400> </applet> </BODY> </HTML>
问答题本程序的功能是访问类exam_90中的成员变量num1和num2。程序中使用构造方法将整型变量a和双精度浮点型变量b的赋给类的成员变量num1和num2,然后定义类的对象ex,最后通过对象ex方法类的成员变量num1和num2,其中变量a为23,变量b为4.5。
public class exam_90{
int num1;
double num2;
public exam_90(______){
num1=a;
num2=b;
}
public static void main(String[] args) {
int a=23;
double b=4.5;
exam_90 ex=new exam_90(a,b);
System.out.println("num1="+______);
System.out.println("num2="+______);
}
}
问答题本程序为窗口添加了一个状态条。在窗口中有一个文本域,在文本域下方有一个状态条,状态条上显示了当前的时间,以及键盘上的大写锁定、数码锁定和滚动锁定是否打开,如图所示。importjava.awt.*;Importjava.awt.event.*;importjava.io.*;importjava.lang.*;importjava.util.*;importjava.text.*;importjavax.swing.*;importjavax.swing.event.*;publicclassexam_90extendsJFrame{JTextFieldmessageField;JTextFielduserField;JTextFielddateLongField;JTextFieldcapsLockField;JTextFieldnumLockField;JTextFieldscrollLockField;JTextFieldtimeField;staticbooleancapsBoolean=false;staticbooleannumBoolean=false;staticbooleanscrollBoolean=false;JTextPanejtextpane;publicexam_90(){setTitle("exam_90");setBounds(100,80,600,400);ContainercontentPane=getContentPane();Boxsbar=Box.createHorizontalBox();messageField=newJTextField(30);messageField.setBackground(Color.LIGHT_GRAY);userField=newJTextField(12);userField.setBackground(Color.LIGHT_GRAY);dateLongField=newJTextField(18);dateLongField.setText(showTodayDate());dateLongField.setBackground(Color.LIGHT_GRAY);capsLockField=newJTextField(5);capsLockField.setBackground(Color.LIGHT_GRAY);capsLockField.setText("Caps");capsBoolean=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);getCapsStatus();numLockField=newJTextField(5);numLockField.setText("Num");numLockField.setBackground(Color.LIGHT_GRAY);numBoolean=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK);getNumStatus();scrollLockField=newJTextField(5);scrollLockField.setText("Scroll");scrollLockField.setBackground(Color.LIGHT_GRAY);scrollBoolean=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_SCROLL_LOCK);getScrollStatus();timeField=newJTextField(5);timeField.setBackground(Color.LIGHT_GRAY);showSysTime(timeField);jtextpane=newJTextPane();sbar.add(messageField);sbar.add(Box.createGlue());sbar.add(userField);sbar.add(dateLongField);sbar.add(capsLockField);sbar.add(numLockField);sbar.add(scrollLockField);sbar.add(timeField);sbar.add(timeField);contentPane.add(jtextpane,BcrderLayout.CENTER);contentPane.add(sbar,BorderLayout.SOUTH);jtextpane.addKeyListener(newMouseAdapter(){publicvoidkeyReleased(KeyEventke){if(ke.getKeyCode()==KeyEvent.VK_CAPS_LOCK){capsBoolean=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);getCapsStatus();}if(ke.getKeyCode()==KeyEvent.VK_NUM_LOCK){numBoolean=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK);getNumStatus();}if(ke.getKeyCode()==KeyEvent.VK_SCROLL_LOCK){scrollBoolean=Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_SCROLL_LOCK);getScrollStatus();}}});capsLockField.addKeyListener(newMouseAdapter(){publicvoidmouseReleased(MouseEventme){if(me.getClickCount()==2){if(capsBoolean==true)capsBoolean=false;if(capsBoolean==false)capsBoolean=true;getCapsStatus();}}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);}publicstaticvoidmain(String[]args){exam_90mf=newexam_90();}publicvoidgetCapsStatus(){if(capsBoolean==true)capsLockField.setEnabled(true);if(capsBoolean==false)capsLockField.setEnabled(false);}publicvoidgetNumStatus(){if(numBoolean==true)numLockField.setEnabled(true);if(numBoolean==false)numLockField.setEnabled(false);}publicvoidgetScrollStatus(){if(scrollBoolean==true)scrollLockField.setEnabled(true);if(scrollBoolean==false)scrollLockField.setEnabled(false);}publicvoidshowTodayDate(){Datedt=newDate();SimpleDateFormatsdf=newSimpleDateFormat("EEE,MMMd,""yy");returnsdf.format(dt).toString();}publicvoidshowSysTime(finalJTextFieldtf){finalSimpleDateFormattimef=newSimpleDateFormat("HH:mm");javax.swing.Timertimer=newjavax.swing.Timer(1000,newActionListener(){publicvoidactionPerformed(ActionEvente){Strings=timef.format(newDate(System.currentTimeMillis()));tf.setText(s);}});timer.start();}}
问答题综合应用题下面是一个Applet程序,其功能是有2个按钮,分别为First和Second,以及一个Label构件。要求点击First时则能在Label中显示出Command:First,而点击Second时则能显示出Command:Second,要求只能使用重载一次actionPerformed()方法。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。程序运行结果如下:注意:不改动程序的结构,不得增行或删行。importjava.awt.*;importjava.awt.event.*;importjava.applet.*;/**/publicclassex2_3extendsAppletimplementsActionListener{privateStringstr="ok";privateLabell;privateButtonbtn;publicvoidinit(){setLayout(null);l=newLabel(str);l.reshape(10,10,100,30);add(l);btn=newButton("First");btn.reshape(10,50,60,20);l.addActionListener(this);add(btn);btn=newButton("Second");btn.reshape(10,100,60,20);btn.setActionCommand("First");btn.addActionListener(this);add(btn);}publicvoidactionPerformed(ActionEventae){str="Command:"+ae.getActionCommand();btn.setText(str);}}ex2_3.htmlex2_3
问答题本程序的功能是捕获系统的剪贴板,窗口中有一个“Edit”菜单,其中包括“copy”、“cut”和“paste”菜单项,在右侧的文本域中输入文本,选中部分字符串可以使用“copy”和“cut”菜单项,然后单击“paste”菜单项可以将剪贴板上的文本粘贴到右侧的文本域中,如图所示。importjava.awt.*;importjava.awt.event.*;importjava.awt.datatransfer.*;publicclassexam_86extendsFrameimplementsActionListener{MenuBarmenubar;Menumenu;MenuItemcopy,cut,paste;TextAreatext1,text2;Clipboardclipboard=null;exam_86(){clipboard=getToolkit().______;setTitle("exam_86");menubar=newMenuBar();menu=newMenu("Edit");copy=newMenuItem("copy");cut=newMenuItem("cut");paste=newMenuItem("paste");text1=newTextArea(20,20);text2=newTextArea(20,20);text2,setEditable(false);copy.addActionListener(this);cut.addActionListener(this);paste.addActionListener(this);setLayout(newFlowLayout());menubar.add(menu);menu.add(copy);menu.add(cut);menu.add(paste);setMenuBar(menubar);add(text1);add(text2);setBounds(100,100,200,250);setVisible(true);pack();addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEvente){if(e.getSource()==copy){Stringtemp=text1.getSeleotedText();StringSelectiontext=newStringSelection(temp);clipboard.setContents(text,null);}elseif(e.getSource()==cut){Stringtemp=text1.getSelectedText();StringSelectiontext=newStringSelection(temp);clipboard.setContents(text,null);intstart=text1.getSelectionStart();intend=text1.getSelectionEnd();text1.replaceRange("",start,end);}elseif(e.getSource()==paste){Transferablecontents=clipboard.getContents(this);DataFlavorflavor=DataFlavor.stringFlavor;if(contents.isDataFlavorSupported(flavor))try{Stringstr;str=(String)contents.getTransferData(flavor);______;}catch(Exceptionee){}publicstaticvoidmain(Stringargs[]){exam_86win=newexam_86();}}
问答题本程序中,主窗口中有一个“打开颜色对话框”按钮,单击该按钮后,则弹出“调色板”对话框,通过“调色板”对话框可以设定颜色,选中某种颜色单击“确定”按钮后,将该颜色设置为按钮的背景色,如图所示。importjava.awt.event.*;importjava.awt.*;importjavax.swing.JColorChooser;classDwindowextendsFrameimplementsActionListener{Buttonbutton;Dwindow(Strings){super(s);button=newButton("打开颜色对话框");button.addActionListener(this);setLayout(newFlowLayout());add(button);setBounds(60,60,300,300);setVisible(true);validate();addWindowListener(newWindowAdaDter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}publicvoidactionPerformed(ActionEvente){ColornewColor=______(this,"调色板",button.getBackground());______;}}publicclassexam_91{publicstaticvoidmain(Stringargs[]){newDwindow("exam_91");}}
问答题下面的Applet程序通过内部类处理鼠标单击事件。在小程序中,如果点击鼠标,则在状态栏输出鼠标点击的坐标;如果双击鼠标,则显示一副图片,鼠标单击处为显示图片的左上角坐标,显示图片的宽度为200像素,高度为180像素。请改正程序中的错误(有下划线的语句),使程序执行后,能得到预期的结果。注意:不改动程序的结构,不得增行或删行。程序的执行结果为:importjava.applet.*;importjava.awt.*;importjava.awt.event.*;/*<appletcode=Huawidth=200height=100></applet>*/publicclassHuaextendsAppletintxPos,yPos;intsum;Imagepic;publicvoidinit()addMouseListener(newClickMouse());publicvoidpaint(Graphicsg)if(sum==2)g.drawImage(pic,xPos,yPos,200,180,super);publicclassClickMouseextendsMouseAdapterpublicvoidmouseClicked(MouseEventmouse)sum=mouse.getClickCount();if(sum==2)pic=getImage(getAudioClip(),"hua.jpg");xPos=mouse.getX();yPos=mouse.getY();showStatus("鼠标单击点的坐标:("+mouse.getX()+","+mouse.getY()+")");paint();ex37_3.html:<html><head><title>ASimpleProgram</title></head><body><appletcode="Hua.class"width=800height=400></applet></body></html>
问答题本程序是一个Applet,功能是监听鼠标在面板上的移动。页面上有三个不同颜色的面板,当鼠标移到其中一个面板上时,该面板颜色发生改变,当鼠标移开后,该面板颜色又恢复原色,如图所示。importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassexam_12extendsApplet{privateChapllPanelpl=newChapllPanel("HaveATry",Color.yellow,newColor(150,150,150));privateChapllPanelp2=newChapllPanel("You,TheBest",Color.orange,newColor(130,130,130));privateChapllPanelp3=newChapllPanel("YouCanDoIt",Color.yellow,newColor(150,150,150));privateLabelblankLabel=newLabel("");privateLabelmsg=newLabel("Rolloverthepanel.");publicvoidInit(){setLayout(newGridLayout(2,3));add(p1);add(p2);add(p3);add(blankLabel);add(msg);}}classChapllPanelextendsPanelimplementsMouseActionListener{intx,y;Stringmessage=newString();Colorcolor;Colorclr2;publicChapllPanel(Stringmsg,Colorclr,Colorclr2){message=msg;this.clr2=clr2;color=clr;setBackground(clr2);addMouselistener(this);}publicvoidmousePressed(MouseEvente){}publicvoidmouseClicked(MouseEvente){}publicvoidmouseEntered(MouseEvente){setBackground(color);}publicvoidmouseExited(MouseEvente){setBackground(clr2);}publicvoidmouseReleased(MouseEvente){}publicvoidpaint(Graphicsg){g.setFont(newFont("Arial",Font.BOLD,16));g.drawString(message,10,30);}}exam_12.html:<html><head><title>exam_12</title></head><body><appletcode=exam_12.classwidth=500height=100></applet></body></html>
问答题本题要求分行打印输出当前系统中所有字体的名称。 ______; public class java2 public static void main(String[]args) String[]fontNames=GraphicsEnvironment .getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); for(int i=0;______;i++) System.out.println(fontNames[i]);
