问答题本题程序的功能是:主窗口中有两个按钮“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;
}
问答题请完成下列Java程序:运行3个线程,每一个线程有自己的标志,用a,b,c表示,每个线程显示一个“Start”信息和一个“End”信息并且间隔地显示2个“Loop”信息(间隔变化为(0.5-2)秒之间的随机延迟)。
程序运行结果如下:(注:由于时间间隔为随机数,所以,运行结果的顺序不惟一)
a Start
b Start
c Start
b Loop
a Loop
b Loop
b End
c Loop
a Loop
a End
c Loop
c End
注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。
public class ex2_2 implements Runnable {
static char flag2_2 = 'a';
public static void main(String[] arg) {
ex2_2 obj2_2 = new ex2_2();
Thread thread2_2 = new Thread(obi2_2);
thread2_2.start();
thread2_2 = new Thread(obj2_2);
thread2 2.start();
thread2_2 = new Thread(obi2_2);
thread2_2.start ( );
}
public void run() {
char myflag2_2;
synchronized(this) {
_________________;
}
System.out.println(myflag2_2 +" Start");
for(int i=0; i<2; i++) {
try {
Thread.sleep(rand(500,2000));
System.out.println(myflag2_2 +" Loop");
} catch(InterruptedException ie) {
System.out.println(ie);
}
}
System.out.println(myflag2_2 +" End");
}
final private int rand(int low, int high)
return(_________________);
}
}
问答题下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.applet.*;importjava.lang.*;publicclassex293extendsApplet{privateTextFieldtf;privateButtonbtn;publicvoidinit(){tf=newTextField(25);add(tf);btn=newButton("统计");add(btn);resize(250,200);}publicvoidpaint(Graphicsg){Stringstr=tf.getText();shortcnt[]=newshort[65536];inti;intn=50;for(i=0;i<65536;i++)cnt[i]=0;for(i=0;i<str.length();i++){{U}}cnt[i]++;{{/U}}for(i=0;i<65536;i++)//对数级Cnt[]进行初始化if({{U}}cnt[i]>=0{{/U}}){{{U}}g.drawStrinq(i+"出现"+cnt[i]+"次",50,n);{{/U}}n+=20;}}publicbooleanaction(Evente,Objecto){if(o=="统计"){repaint();returntrue;}elsereturnfalse;}}{{B}}ex29_3.html{{/B}}<HTML><HEAD><TITLE>ex29_3</TITLE></HEAD><BODY><appletcode="ex29_3.class"width=800height=400></applet></BODY></HTML>
问答题jfrm.setVisible(true);
问答题本程序是一个计时器。窗口中有一个文字标签和“复位”、“开始”和“暂停”三个按钮,初始状态时只有“开始”按钮可用,单击该按钮开始计时,并且“开始”按钮的标签变为“继续”且不可用,“暂停”按钮变为可用,单击“暂停”按钮后“暂停”按钮变为不可用,“复位”和“继续”按钮变为可用,此时如果单击“复位”按钮将恢复到初始状态,如果单击“继续”按钮将继续进行计数,如图所示。importjava.awt.*;importjava.awt.event.*;publicclassexam_48extendsFrameextendsRunnable{LabeltimeDisp=newLabel("0:0",Label.CENTER);ThreadtimerThread;inttime=0;ButtonbtReset=newButton("复位");ButtonbtStart=newButton("开始");ButtonbtStop=newButton("暂停");exam_48(){super("exam_48");Panelp=newPanel(newGridLayout(1,0));btReset.setEnabled(false);btStop.setEnabled(true);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});btReset.addActionListener(newResetListener());btStop.addActionListener(newStopListener());btStart.addActionListener(newStartListener());p.add(btReset);p.add(btStart);p.add(btStop);add(p,BorderLayout.SOUTH);timeDisp.setFont(newFont("Courier",Font.BOLD,60));add(timeDisp,BorderLayout.CENTER);pack();show();}voidstop(){Threadt=timerThread;if(t!=null){timerThread=null;try{t.join();}catch(Exceptione){}}}publicvoidrun(){while(timerThread==Thread.currentThread()){timeDisp.setText(""+time/10+":"+time%10+"0");time++;try{Thread.sleep(100);}catch(Exceptione){};}}classResetListenerimplementsActionListener{publicvoidactionPerformed(ActionEventevt){this.stop();timeDisp.setText("0:0");time=0;btReset.setEnabled(false);btStart.setEnabled(true);btStop.setEnabled(false);btStart.setLabel("开始");}}classStopListenerimplementsActionListener{publicvoidactionPerformed(ActionEventevt){exam_48.this.stop();btReset.setEnabled(true);btStart.setEnabled(true);btStop.setEnabled(false);btStart.setLabel("继续");}}classStartListenerimplementsActionListener{publicvoidactionPerformed(ActionEventevt){timerThread=newThread(exam_48.this);timerThread.start();btReset.setEnabled(false);btStart.setEnabled(false);btStop.setEnabled(true);btStart.setLabel("继续");}}staticpublicvoidmain(String[]args){newexam_48();}}
问答题以下程序从键盘读取一个字符串以‘#’作为结束,再将字符串中的小写英文字母改写成大写英文字母,最后将改写好的字符串写入磁盘文件file.txt,请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 package ch3; import java.io.*; class File1 private char ch; private int i='a'-'A'; void savetoFile() System.out.println("请输入一个字符串:"); try ______out=new______("ch3/file.txt"); while((ch=(char)System.in.______()) !='#') if(ch >='a' out.______; out.close(); catch(IOException e) e.printStackTrace(); public class ex3 public static void main(String[] args) File1 obj=new File1(); Obj.savetoFile();
问答题本题定义了一个求两个数的最大值的方法max,并调用该方法计算67和23的最大值。
public class javal{
public static void main(String[]args){
javal temp=new javal();
int res=max(67,23);
System.out.println("res="+res);
}
static int maX( ){
int maxNum;
if(a>b)
;
else
maxNum=b;
;
}
}
问答题注意:下面出现的“考生文件夹”均为%USER%。在考生文件夹下存有文件名为Java_1.java的文件,请完善该程序并进行调试,使程序输出结果如下:由于Java_1.java文件不完整,请在注释行“//*********Found********”下一行语句的下画线地方填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序://用2至20的偶数去初始化数组importjavax.swing.*;publicclassJava_1{publicstaticvoidmain(Stringargs[]){finalintARRAY_SIZE=10;intn[];//引用整形数组Stringoutput="";//*********Found********n=______int[ARRAYSIZE];//分配数组//给数组赋值for(inti=0;i<n.length;i++)n[i]=2+2*i;output+="数组下标/t值/n";for(inti=0;i<n.length;i++)output+=i+"/t"+n[i]+"/n";//*********Found********JtextAreaoutputArea=______JTextArea(11,10);outputArea.setText(output);//*********Found********JOptionPane.______(null,outputArea,"用2至20的偶数去初始化数组",JOptionPane.INFORMATION_MESSAGE);System.exit(0);}}
问答题本题程序的功能是定义一个简单的计算器,可以进行基本的四则运算。程序中布局了16个按钮用来表示数字0~9及运算符和点号,程序顶部的文本框用来显示运算数及结果。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class simple public static void main (String[] args) try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); catch (Exception e) JFrame frame = new CalculatorFrame(); frame.show(); class CalculatorPanel extends JPanel implements ActionListener private JTextField display; private JButton btn; private double arg = 0; private String op = "="; private boolean start = true; public CalculatorPanel() setLayout(new BorderLayout()); display = new JTextField("0"); display.setEditable(false); add(display,"North"); JPanel p = new JPanel(); p.setLayout(new GridLayout(4,4)); String buttons = "789/456"123-0.= +"; for (int i = 0; i < buttons.length(); i ++) btn = new JButton(buttons.substring(i,i + 1)); p.add(btn); ______; add(p,"Center"); public void actionPerformed(ActionEvent evt) String s = evt.getActionCommand(); if ('0'< = s.charAt(0)&&s.charAt(0) <='9' ||s.equals(".")) if (start) display.setText(s); else display.setText(display.getText() + s); start = false; else if (start) if (s.equals("-")) display.setText(s); start = false; else op = s; else double x =______; calculate(x); op = s; start = true; public void calculate(double n) if (op.equals(" + ")) arg += n; else if(op.equals("-")) arg - = n; else if(op.equals("*")) arg *= n; else if(op.equals("/")) arg /= n; else if(op.equals("=")) arg=n; display.setText(""+ arg); class CalculatorFrame extends Jframe public CalculatorFrame() setTitle("simple"); setSize(220,180); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); Container contentPane=getContentPane(); contentPane.add(new CalculatorPanel());
问答题本程序的功能是获取文本框中的文本。窗口中有两个文本框“用户名”和“密码”,以及三个按钮“登录”、“其他用户登录”和“关闭”,初始状态“用户名”文本框是只读的,单击“其他用户登录”按钮后变成可写的,“密码”文本框使用的不是密码文本框,在用户键入的时候设置显示为*号。输入用户名和密码后,单击“登录”按钮后,如果输入的密码为空,则弹出提示消息框,否则后台将显示输入的用户名和密码。比如显示为“admin用户的密码:password”(admin为输入的用户名,password为输入密码)。 import java.awt.*; import java.awt.event.*; import javax.swing.JOptionPane; public class java3 public static void main(String args[]) final Frame frmFrame=new Frame(); Panel pnlPanel=new Panel(); Label lblUsername=new Label("用户名"); Label lblPassword=new Label("密码"); final TextField txtUsername=new TextField("Student"); final TextField txtPassword=new TextField("".8); txtUsername.setEditable(false); txtPassword.setChar('*'); Button btnButton1=new Button("登录"); Button btnButton2=new Button("其他用户登录"); Button btnButton3=new Button("关闭"); btnButton1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if((txtPassword.getText()).length()==0) JOptionPane.showMessageDialog(frmFrame,"密码不能为空"); return; txtPassword.setColumns(16); System.out.println(txtUsername.getText()+"用户的密码:" +txtPassword.getPassword()); ); btnButton2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) txtUsername.setEnable(true); ); btnButton3.addActionListener(new ActionListener() public void aetionPerformed(ActionEvent e) System.exit(0); ); pnlPanel.add(lblUsername); pnlPanel.add(txtUsername); pnlPanel.add(lblPassword); pnlPanel.add(txtPassword); pnlPanel.add(btnButtonl); pnlPanel.add(btnButton2); pnlPanel.add(btnButton3); frmFrame.add(pnlPanel); frmFrame.setTitle("advance"); frmFrame.pack(); frmFrame.show();
问答题本程序的功能是用表格的形式列出当前目录所有的文件以及属性,包括是否是文件夹、文件名称、是否可读、是否可写、文件大小以及最后修改时间,其中是否可读和是否可写采用复选框的形式表达。importjava.awt.*;importjavax.swing.*;importjava.util.Date;importjava.io.File;importjavax.swing.table.*;publicclassexam_96extendsJFrame{publicexam_96(){super("exam_96");setSize(500,400);setDefaultCloseOperation(EXITONCLOSE);FileModelfm=newFileModel();JTablejt=newJTable(fm);jt.setAutoResizeMode(JTable.AUTORESIZE_OFF);jt.setColumnSelectionAllowed(true);jt.setDefaultRenderer(Number.class,newBigRenderer(1000));JScrollPanejsp=newJScrollPane(jt);getContentPane().add(jsp,BorderLayout.CENTER);}publicstaticvoidmain(Stringargs[])exam_96ft=newexam_96();ft.setVisible(true);}}classBigRendererextendsDefaultTableCellRenderer{doublethreshold;publicBigRenderer(doublet){threshold=t;setHorizontalAlignment(JLabel.RIGHT);setHorizontalTextPosition(SwingConstants.RIGHT);}publicComponentgetTableCellRendererComponent(JTabletable,Objectvalue,booleanisSelected,booleanhasFocus,introw,intcol){returnsuper.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,col);}}classFileModelextendsAbstractTableModel{Stringtitles[]=newString[]{"目录","文件名","可读?","可写?","大小","最后修改时间"};Classtypes[]=newClass[]{Boolean.class,String.class,Boolean.class,Boolean.class,Number.class,Date.class};Objectdata[][];publicFileModel(){this(".");}publicFileModel(Stringdir){Filepwd=newFile(dir);setFileStats(pwd);}publicintgetRowCount(){returndata.length;}publicintgetColumnCount(){returntitles,length;}publicStringgetColumnName(intc){returntitles[c];}publicClassgetColumnClass(intc){returntypes[c];}publicObjectgetValueAt(intr,intc){returndata[r][c];publicvoidsetFileStats(______){Stringfiles[]=dir.list();data=newObject[files.length][titles.length];for(______){Filetmp=newFile(files[i]);data[i][0]=newBoolean(tmp.isDirectory());data[i][1]=tmp.getName();data[i][2]=newBoolean(tmp.canRead());data[i][3]=newBoolean(tmp.canWrite());data[i][4]=newLong(tmp.length());data[i][5]=newDate(tmp.lastModified());}fireTableDataChanged();}}
问答题本题用复选框来控制字体的显示,窗口中有一个标签和两个复选按钮,这两个复选按钮分别对应的字体的两个特点:加粗和倾斜,任意选中一个按钮或两个都选中,标签上的字符串就显示对应的字体。 import java.awt.*; import java.awt.event.*; import javax.swing.*; class CheckBoxFrame extends JFrame implements ActionListener public CheckBoxFrame() setTitle("CheckBoxTest"); setSize(300,200); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); JPanel p=new JPanel(); bold=addCheckBox(p,"Bold"); italic=addCheckBox(p,"Italic"); getContentPane().add(p,"South"); panel=new CheckBoxTestPanel(); getContentPane().add(panel,"Center"); public JCheckBox addCheckBox(JPanel p,String name) JCheckBox c=new JCheckBox(name); c.addActionListener( ); p.add(c); return c; public void______ int m=(bold.isSelected()?Font.BOLD:0)+(italic.isSelected()?Font.ITALIC:0); panel.setFont(m); private CheckBoxTestPanel panel; private JCheckBox bold; private JCheckBox italic; class CheckBoxTestPanel extends JPanel public CheckBoxTestPanel() setFont(Font.PLAIN); public void setFont(int m) setFont(new Font("SansSerif",m,12)); repaint(); public void paintComponent(Graphics g) super.paintComponent(g); g.drawstring("The quick brown fox jumps over the lazy dog.",0,50); public class java2 public static void main(String[]args) JFrame frame=new CheckBoxFrame(); frame.show();
问答题注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为Java_2.java文件。请完善Java_2.java文件,并进行调试,使程序显示对话框如下:并在命令行中每隔10秒显示一下当前时间(见下图),直至用户在对话框单击“确认”按钮后退出。由于Java_2.java文件不完整,清在注释行“//*********Found*********”下一行语句的下画线地方填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序:importjava.awt.*;importjava.awt.event.*;importjava.util.*;importjavax.swing.*;importjavax.swing.Timer;publicclassJava_2{publicstaticvoidmain(String[]args){//*********Found**********ActionListenerlistener=new______();Timert=newTimer(10000,listener);t.start();JOptionPane.showMessageDialog(null,"退出程序吗?");System.exit(0);}}//*********Found**********classTimePrinter______ActionListener{//*********Found**********publicvoidactionPerformed(______event){Datenow=newDate();System.out.println("Atthetone,thetimeis"+now);//*********Found**********______.getDefaultToolkit().beep();}}
问答题本题程序的功能是:单击窗口左上角的File菜单中的Open命令,打开一个GIF图像文件,并将图像文件显示在窗口中;单击File菜单中的Exit命令,能够退出程序。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; public class simple extends JFrame implements ActionListener public simple() setTitle ("ImageViewer" ); setSize(300,400); JMenuBar mbar = new JMenuBar(); JMenu m = new JMenu("File"); openItem = new JMenuItem("Open"); openItem,addActionListener (this); m.add (openItem); exitItem = new JMenuItem("Exit"); exitItem.addActionListener(this); m.add(exitItem); mbar.add (m); setJMenuBar (mbar); label = new JLabel(); Container contentPane = getContentPane(); contentPane.add(label,"Center"); public void actionPerformed(ActionEvent evt) Object source = evt.getSource(); if (source == openItem) JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File(".")); chooser.setFileFilter(new javax.swing.filechooser.FileFilter() public boolean accept(File f) return f.getName().toLowerCase().endsWith(".gif"); public String getDescription() return "GIF Images"; ); int r = chooser.showOpenDialog(this); if(r == JFileChooser.APPROVE_OPTION) String name = chooser.getSelectedFile().getName(); label.setIcon(______); else if(source == exitItem) System.exit(0); public static void main(String[] args) JFrame frame = new simple(); ______; private JLabel label; private JMenuItem openItem; private JMenuItem exitItem;
问答题下面的程序中定义了两个方法求自然数1~100的和。具体如下:int suml(int n);利用循环求1~n的和,int sum2(int n);利用递归方法求和1~n的和;在main()方法中调用这两个方法求1~100的和并显示。在程序的每条横线处填写一个适当的语句,使程序的功能完整。 public class Sum public static void main(String args[]) //1.调用suml(int n),求1~100的和 System.out.println("1~100的和:"+sum1(100)); //2,调用sum2(int n),求1~100的和 System.out.println("1~100的和:"+sum2(100)); static int suml(int n) int result=0; for(int i=1;i<=n;i++) ________________ retrun result; static int sum2(int n) if(______________) return 1; else _____________
问答题下面是一个Applet程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.applet.*;/*<appletcode="ex20_3.class"width=800height=400></applet>*/publicclassex20_3extendsApplet{int[]x={15,50,100,160,120,190};int[]y={15,100,30,15,80,50);publicvoidinit()(setBackground(Color.lightGray);}publicvoidpaint(Graphicsg){int[]y2=newint[6];g.setColor(Color.red);Rectanglerect=getBounds();{{U}}g.drawPolygon(x,y2,6);{{/U}}for(inti=0;i<6;i++){{U}}y2[i]=y[i]+(rect.height/2);{{/U}}{{U}}g.fillPolygon(x,y,6){{/U}};}}ex20_3.html<HTML><HEAD><TITLE>ex20_3</TITLE></HEAD><BODY><appletcode="ex203.class"width=800height=400></applet></BODY></HTML>
问答题本程序的功能是获得系统剪贴板中的内容。程序窗口中有一个文本域和两个按钮:“复制”和“粘贴”,在文本域中输入文本,选取一部分文本后单击“复制”按钮,被选中的内容被复制到系统剪贴板上,然后单击“粘贴”按钮,系统剪贴板上的内容就插入到文本域中光标的位置,如图所示。importjava.awt.*;importjava.awt.datatransfer.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publicclassexam_31{publicstaticvoidmain(String[]args){JFrameframe=newTextTransferFrame();frame.setCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();}}classTextTransferFrameextendsJFrame{publicTextTransferFrame(){setTitle("exam_31");setSize(WIDTH,HEIGHT);ContainercontentPane=getContentPane();textArea=newJTextArea();contentPane.add(newJScrollPane(textArea),BorderLayout.CENTER);JPanelpanel=newJPanel();JButtoncopyButton=newJButton("复制");panel.add(copyButton);copyButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){copy();}});JButtonpasteButton=newJButton("粘贴");panel.add(pasteButton);pasteButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){paste();}});contentPane.add(panel,BorderLayout.SOUTH);}privatevoidcopy(){Clipboardclipboard=Toolkit.getDefaultToolkit().getSystemClipboard();Strinqtext=textArea.getSelectText();if(text==null)text=textArea.getText();StringSelectionselection=newStringSelection(text);clipboard.setContent(selection,null);}privatevoidpaste(){Clipboardclipboard=Toolkit.getDefaultToolkit().getSystemClipboard();Transferablecontents=clipboard.getContents(this);if(contents==null)return;DataFlavorflavor=DataFlavor.stringFlavor;if(contents.isDataFlavorSupported(flavor)){try{Stringtext=(String)(contents.getTransferData(flavor));textArea.replaceSelection(text);}catch(UnsupportedFlavorExceptionexception){JOptionPane.showMessageDialoq(this,exception);}catch(IOExceptionexception){JOptionPane.showMessageDialog(this,exception);}}}privateJTextAreatextArea;privatestaticfinalintWIDTH=300;privatestaticfinalintHEIGHT=300;}
问答题请完善Java_2.java文件,并进行调试,使某次程序运行结果如下:由于Java_2.java文件不完整,请在注释行“//*********Found********”下一行语句的下画线处填入正确内容,然后删除下画线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序:importjavax.swlng.*;importjava.awt.*;publicclassJava_2publicstaticvoidmain(String[]args)WelcomFrameframe=newWelcomFrame();//*********Found********frame.setDefaultCloseOperation(JFrame.______);frame.show();//*********Found********classWelcomFrameextends______publicWelcomFrame()setTitle("Java等级考试");//*********Found********______(DEFAULTWIDTH,DEFAULT_HEIGHT);WelcomPanelpanel=newWelcomPanel();ContainercontentPane=getContentPane();contentPane.add(panel);publicstaticfinalintDEFAULT_WIDTH=250;publicstaticfinalintDEFAULT_HEIGHT=100;//*********Found********classWelcomPanelextends______publicvoidpaintComponent(Graphicsg)super.paintComponent(g);g.drawString("欢迎参加Java等级考试!",MESSAGE_X,MESSAGE_Y);publicstaticfinalintMESSAGE_X=60;publicstaticfinalintMESSAGE_Y=50;
问答题请完成下列Java程序。程序的功能是对数组进行冒泡排序。冒泡排序算法的基本思路是把当前数据序列中的各相邻数据两两比较,发现任何一对数据间不符合要求的升序或降序关系则立即调换他们的顺序,从而保证相邻数据间符合升序或降序的关系。本题是进行升序排列。例如数组a[]={30,1,-9,70,25}则排序后为{-91253070}。注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。publicclassBubbleSort{publicstaticvoidmain(Stringargs[]){inti,j;inta[]={30,1,-9,70,25};intn=a.length;System.out.print("排序前数组为:");for(i=0;i<n;i++)System.out.print(a[i]+"");System.out.println();for(i=1;i<n;i++)for(j=0;______________J++)if(a[j]>a[j+1]){inttemp=a[j];______________a[j+1]=temp;}System.out.print("排序后数组为:");for(i=0;i<n;i++)System.out.print(a[i]+"");}}
问答题本程序是一个Applet,页面中有10个按钮,名称从“0”~“9”,用鼠标任意单击其中一个按钮后,通过键盘上的上下左右键可以控制按钮在窗口上移动,如图所示。importjava.applet.*;importjava.awt.*;importjava.awt.event.*;publicclassexam_93extendsApplet______{Buttonb[]=newButton[10];intx,y;publicvoidinit(){for(inti=0;i<=9;i++){b[i]=newButton(""+i);b[i].addKeyListener(this);add(b[i]);}}publicvoid______{Buttonbutton=(Button)e.getSource();x=button.getBounds().x;y=button.getBounds().y;if(e.getKeyCode()==KeyEvent.VK_UP){y=y-2;if(y<=0)y=0;button.setLocation(x,y);}elseif(e.getKeyCode()==KeyEvent.VK_DOWN){y=y+2;if(y>=300)y=300;button.setLocation(x,y);}elseif(e.getKeyCode()==KeyEvent.VK_LEFT){x=x-2;if(x<=0)x=0;button.setLocation(x,y);}elseif(e.getKeyCode()==KeyEvent.VK_RIGHT){x=x+2;if(x>=300)x=300;button,setLocation(x,y);}}publicvoidkeyTyped(KeyEvente){}publicvoidkeyReleased(KeyEvente){}}exam_93.html:<html><head><title>exam_93</title></head><body><appletcode="exam_93.class"width="400"height="500"></applet></body></html>
