问答题基本操作题
下列程序中,要求输出一个特定文件(这里是ex2_1.java)的相关信息,包括文件的名字,相对路径以及文件的长度。请将程序补充完整。
程序运行结果如下:
name: ex2_1.java
path: ex2_1.java
length: 299
import java.io.*;
public class ex2_1 {
public static void main(String[] args) {
File file2_1 = new File("ex2_1.java");
System.out.println("name: " + file2_1. );
System.out.println("path: " + file2_1. );
System.out.println("length: " + file2_1. );
}
}
问答题下面是一个Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjava.awt.*;importjava.applet.*;importjava.lang.*;publicclassex293extendsAppletprivateTextFieldtf;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++)cnt[i]++;for(i=0;i<65536;i++)//对数级Cnt[]进行初始化if(cnt[i]>=0)g.drawStrinq(i+"出现"+cnt[i]+"次",50,n);n+=20;publicbooleanaction(Evente,Objecto)if(o=="统计")repaint();returntrue;elsereturnfalse;ex29_3.html<HTML><HEAD><TITLE>ex29_3</TITLE></HEAD><BODY><appletcode="ex29_3.class"width=800height=400></applet></BODY></HTML>
问答题综合应用题下面是一个Applet程序,其功能是建立一个图形用户界面的窗口,包括一个文本显示区和一个按钮,点击按钮,可以在文本区已有的文本基础上追加显示10条"WelcometotheNCRExamination!"信息,并且文本区由滚动条控制文本的上下滚动。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;/**/publicclassex10_3extendsJApplet{JButtonjb=newJButton("AddText");JTextPanejtp=newJTextPane();publicvoidinit(){jb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){for(inti=1;iex10_3
问答题下面是一个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
{{U}}d=a1 * a1-4.0 * a2 * a3{{/U}};
if(d>=0.0)
x1=(-a2+Math. sqrt(d))/(2.0 * a1);
{{U}}x2=(-a2+Math. sqrt(d))/(2.0 * a1){{/U}};
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( );
{{U}}obj3_1, doReal(a,b,c, 14){{/U}};
} 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>
问答题c2.start();
问答题本题程序的功能是通过菜单打开一个图像文件。窗口中有一个菜单“File”,其中包括菜单项“Open”和“Exit”。单击菜单项“Open”可弹出一个打开对话框,选中一个图像文件后单击“打开”按钮返回主窗口,则选中的图像文件显示在窗口中。单击菜单项“Exit”可退出程序。请将下述程序补充完整(注意:不得改动程序的结构,不得增行或删行)。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class advance
{
public static void main(String[] args)
{
JFrame frame = new ImageViewerFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show ();
}
}
class ImageViewerFrame extends JFrame
{
public ImageViewerFrame()
{
setTitle("advance");
setSize(DEFAULT WIDTH,DEFAULT_HEIGHT);
label = new JLabel();
Container contentPane = getContentPane();
contentPane.add(label);
______;
chooser.setCurrentDireetory(new File("."));
JMenuBar menuBar = new JMenuBar();
______;
JMenu menu = new JMenu("File");
menuBar,add (menu);
JMenuItem openItem = new JMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(new ActionListener() {
______
int r =
chooser
.showOpenDialog(null);
if(r == JFileChooser.APPROVE_OPTION)
{
String name = chooser.getSelectedFile().getPath();
label.setIeon(new ImageIcon(name));
}
}
});
JMenuItem exitItem = new JMenuItem("Exit");
menu.add(exitItem);
exitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
}
private JLabel label;
private JFileChooser chooser;
private static final int DEFAULT_WIDTH=300;
private static final int DEFAULT_HEIGHT=400;
}
问答题下面的程序的功能是利用实现Runnable接口的方法来创建线程,并利用它来执行响应的一些操作。最后使得m的执行结果:100。注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。classClassNameimplementsRunnableintn;_______________________tryThread.sleep(2000);n=100;catch(Exceptione)publicstaticvoidmain(String[]args)tryClassNamea=newClassName();__________________threadl.start();threadl.join();intm=a.n;System.out.println("m="+m);catch(Exceptione)
问答题下列程序中,要求输出一个特定文件(这里是ex2_1.java)的相关信息,包括文件的名字,相对路径以及文件的长度。请将程序补充完整。
程序运行结果如下:
name:ex2_1.java
path:ex2_1.java
length: 299
import java.io.*;
public class ex2_1{
public static void main(String[] args) {
File file2_1 = new File("ex2_1.java");
System.out.println("name:"+file2_1.____________ );
System.out.println("path:"+file2_1.____________ );
System.out.println("length:"+file2_1.____________ );
}
}
问答题本题是一个表格式的成绩单,其中包括“姓名”、“英语成绩”、“数学成绩”和“总成绩”,姓名和成绩都可以进行修改,单击按钮“计算每人总成绩”,则可以统计出每个人的总成绩并显示在总成绩栏中。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class java2 extends JFrame implements ActionListener JTable table;Object a[][]; Object name[]="姓名","英语成绩","数学成绩","总成绩"); JButton button; java2() setTitle("java2"); a=new Object[8][4]; for(int i=0;i<8;i++) for(int j=0;j<4;j++) if(j!=0) a[i][j]=""; else a[i][j]=""; button=new JButton("计算每人总成绩"); table=______; button.addActionListener(this); getContentPane().add(new JScrollPane(table),BorderLayout.CENTER); getContentPane().add(button,BorderLayout.SOUTH); setSize(400,200); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) for(int i=0;i<8;i++) double sum=0; boolean boo=true; for(int j=1;j<=2;j++) try sum=sum+Double.parseDouble(______); catch(Exception ee) boo=false; table.repaint(); if(boo==true) a[i][3]=""+sum; table.repaint(); public static void main(String args[]) java2 Win=new java2();
问答题本程序的功能是解析HTML。窗口中有一个文本域、一个文字标签和一个“改变标签显示内容”按钮,在文本域中输入HTML代码,单击按钮后,如果HTML语法没有错误,右侧文字标签将显示对应HTML语言显示风格的内容,否则将弹出一个错误信息提示框,如图所示。importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassexam_46extendsJPanel{JLabeltheLabel;JTextAreahtmlTextArea;publicexam_46(){StringinitialText="<html>/n"+"颜色和字体测试:/n"+"<ul>/n"+"<li><fontcolor=red>红色</font>/n"+"<li><fontcolor=blue>蓝色</font>/n"+"<li><fontcolor=green>绿色</font>/n"+"<li><fontsize=-2>小</font>/n"+"<li><fontsize=+2>大</font>/n"+"<li><i>斜体</i>/n"+"<li><b>粗体</b>/n"+"</ul>/n";htmlTextArea=newJTextArea(10,20);htmlTextArea.setText(initialText);JScrollPanescrollPane=newJScrollPane(htmlTextArea);JButtonchangeTheLabel=newJButton("改变标签显示内容");changeTheLabel.setMnemonic(KeyEvent.VK_C);changeTheLabel.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){try{theLabel.setText(htmlTextArea.gettext());}catch(Throwableexc){showMessageDialog(exam_46.this,"您指定的HTML无效.");}}});changeTheLabel.setAlignmentX(Component.CENTER_ALIGNMENT);theLabel=newJLabel(initialText){publicDimensiongetPreferredSize(){returnnewDimension(200,200);}publicDimensiongetMinimumSize(){returnnewDimension(200,200);}publicDimensiongetMaximumSize(){returnnewDimension(200,200);}};theLabel.setVerticalAlignment(SwingConstants.CENTER);theLabel.setHorizontalAlignment(SwingConstants.CENTER);JPanelleftPanel=newJPanel();leftPanel.setLayout(newBoxLayout(leftPanel,BoxLayout.Y_AXIS));leftPanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder("首先编辑HTML,然后单击按钮"),BorderFactory.createEmptyBorder(10,10,10,10)));leftPanel.add(scrollPane);leftPanel.add(Box.createRigidArea(newDimension(0,10)));leftPanel.add(changeTheLabel);rightPanel=newJPanel();rightPanel.setLayout(newBoxLayout(rightPanel,BoxLayout.Y_AXIS));rightPanel.setBorder(BorderFaotory.createCompoundBorder(BorderFactory.createTitledBorder("使用HTML标记的标签"),BorderFactory.createEmptyBorder(10,10,10,10)));rightPanel.add(theLabel);setLayout(newBoxLayout(this,BoxLayout.X_AXIS));setBorder(BorderFactory.createEmptyBorder(10,10,10,10));add(leftPanel);add(Box.createRigidArea(newDimension(10,0)));add(rightPanel);}publicstaticvoidmain(Stringargs[]){JFramef=newJFrame("exam_46");f.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});f.getContentPane().add(newexam_46());f.pack();f.setVisible(true);}}
问答题简单应用题请完成下列Java程序:输出某年的某月有多少天数,要求生成2个输入对话框,一个输入年份,一个输入月份,并且能检查输入的数字是否符合要求,如果符合要求,则根据输入的年份和月份计算出这一年的这一月有多少天。提示:闰年为年数能被4整除但是不能被100整除。注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:importjavax.swing.JOptionPane;publicclassex10_2{publicstaticvoidmain(String[]args){StringstrIn;intnYear,nMonth,nNumOfDays=0;strIn=JOptionPane.showInputDialog("year");nYear=Integer.parseInt(strIn);if(nYear<0){System.out.println("Invalidatenumberofyear!");return;}strIn=JOptionPane.showInputDialog("month");nMonth=Integer.parseInt(strIn);if(){System.out.println("Invalidatenumberofmonth!");return;}switch(nMonth){case1:case3:case5:case7:case8:case10:case12:nNumOfDays=31;break;case4:case6:case9:case11:nNumOfDays=30;break;case2:if()nNumOfDays=29;elsenNumOfDays=28;break;}System.out.println("Numberofdays:"+nNumOfDays);}}
问答题本程序的功能是用列表来选择窗口背景的颜色。程序窗口中有一个列表框,列表项是不同的颜色,选中其中一种颜色,窗口的背景色就变成对应的颜色,列表框不支持多项选择,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;publicclassexam_66extendsJFrame{privateJListcolorList;privateContainerc;privateStringcolorNames[]={"Black","Blue","Cyan","DarkGray","Gray","Green","LightGray","Magenta","Orange","Pink","Red","White","Yellow"};privateColorcolors[]={Color.black,Color.blue,Color.cyan,Color.darkGray,Color.gray,Color.green,Color.lightGray,Color.magenta,Color.orange,Color.pink,Color.red,Color.white,Color.yellow};publicexam_66(){super("exam_66");c=getContentPane();c.setLayout(newFlowLayout());colorList=newJList();colorList.setVisibleRowCount(5);colorList.SelectionMode(ListSelectionModel.SINGLESELECTION);c.add(newJScrollPane(colorList));colorList.addListSelectionListener(newListSelectionListener(){publicvoidvalueChanged(ListSelectionEvente){c.setBackcolor(colors[colorList.getSelectedIndex()]);}});setSize(350,150);show();}publicstaticvoidmain(Stringargs[]){exam_66app=newexam_66();app.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});}}
问答题下面是一个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); g.drawString(n15_3,50,50); 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;i<100;i++) if(isPrime(i)) objl5_3.color15_3=Color.gray; else objl5_3.color15_3=Color.green; obj15_3.n15_3; 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>
问答题下面程序执行后,输出结果为:true请在程序的每条横线处填写一个语句,使程序的功能完整。
注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。
public class TestStringCompare{
{public static void main(String ____________________ args)
{char charl[]={'t','e','s','t'};
char char2[]={'t','e','s','t','1'};
String str1=new String(___________________);
String str2=new String(char2,0,4);
System.out.println(__________________________);
}
}
问答题本程序中,通过“connect”菜单显示一个对话框,单击“Ok”按钮后,所填写的内容就会传回到主窗口并显示出来,如图所示。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassexam_99extendsJFrameimplementsActionListener{publicexam_99(){setTitle("exam_99");setSize(300,300);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0);}});JMenuBarmbar=newJMenuBar();setJMenuBar(bar);JMenufileMenu=newJMenu("File");mbar.add(fileMenu);connectItem=newJMenuItem("Connect");connectItem.addActionListener(this);fileMenu.add(connectItem);exitItem=newJMenuItem("Exit");exitItem.addActionListener(this);fileMenu.add(exitItem);}publicvoidactionPerformed(ActionEventevt){Objectsource=evt.getSource();if(source==connectItem){ConnectInfotransfer=newConnectInfo("yourname","pw");if(dialog==null)dialog=newConnectDialog(this);if(dialog.showDialog(transfer)){Stringuname=transfer.username;Stringpwd=transfer.password;ContainercontentPane=getContentPane();contentPane.add(newJLabel("username="+uname+",password="+pwd),"South");validate();}}elseif(source==exitItem)System.exit(0);}publicstaticvoidmain(String[]args){JFramef=newexam_99();f.show();}privateConnectDialogdialog=null;privateJMenuItemconnectItem;privateJMenuItemexitItem;}classConnectInfo{publicStringusername;publicStringpassword;publicConnectInfo(Stringu,Stringp){username=u;password=p;}}classConnectDialogextendsJDialogimplementsActionListener{publicConnectDialoq(){super(parent,"Connect",true);ContainercontentPane=getContentPane();JPanelp1=newJPanel();p1.setLayout(newGridLayout(2,2));p1.add(newJLabel("Username:"));p1.add(username=newJTextField(""));p1.add(newJLabel("Password:"));p1.add(password=newJPasswordField(""));contentPane.add("Center",p1);Panelp2=newPanel();okButton=addButton(p2,"Ok");cancelButton=addButton(p2,"Cancel");contentPane.add("South",p2);setSize(240,120);}JButtonaddButton(Containerc,Stringname)JButtonbutton=newJButton(name);button.addActionListener(this);c.add(button);returnbutton;}publicvoidactionPerformed(ActionEventevt){Objectsource=evt.getSource();if(source==okButton){ok=true;setVisible(false);}elseif(source==cancelButton)setVisible(false);}publicvoidshowDialog(ConnectInfotransfer){username.setText(transfer.username);password.setText(transfer.password);ok=false;show();if(ok){transfer.username=username.getText();transfer.password=newString(password.getPassword());}returnok;}privateJTextFieldusername;privateJPasswordFieldpassword;privatebooleanok;privateJButtonokButton;privateJButtoncancelButton;}
问答题下面程序的目的是在屏幕上显示当前目录下的文件信息。文件信息通过表格JTable的实例显示。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java.awt.*; import javax.swing.*; import java.util. Date; import javax.swing.table.*; import java.applet.*; import java.io.*; public class Example3_10 extends JApplet, JFrame public void init() FileModel fm = new FileModel(); JTable jt = new JTable(); jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); jt.setColumnSelectionAllowed(true); JScrollPane jsp = new JScrollPane(jt); getContentPane().add(jsp, BorderLayout.CENTER); public static void main(String args[]) Example3_10 ft = new Example3_10(); ft.init(); JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT ON CLOSE); f.getContentPane() .add(ft.getContentPane()); f.setSize (300, 400); f.show(); class FileModel extends AbstractTableModel String[] columnName = new String[] "文件名", "大小", "最后修改时间" Object[] [] data; public FileModel() this("."); public FileModel(String dir) File file = new File(dir); String files[] = file.list(); data = new Object [files.length] [columnName.length]; for (int i=0; i < files.length; i++) File tmp = new File (files[i]); data[i] [0] = tmp.getName(); data[i] [1] = new Long(tmp.length()); data[i] [2] = new Date(tmp.lastModified() ); public int getColumnNumber() return columnName.length; public int getRowCount() return data. length; public String getColumnName(int col) return columnName[col]; public Object getValueAt(int row, int col) return data[row] [col]; public Class getColumnClass(int c) return getValueAt (0, c) .getClass();
问答题基本操作题
下列程序中,要求计算1+2+3+…+100的值,并显示计算结果。请将程序补充完整。
程序运行结果如下:
5050
public class ex6_1 {
public static void main(String[] args) {
ex6_1 obj6_1=new ex6_1();
obj6_1.method6_1();
}
public void method6_1(){
int sum;
;
for(int i=1;i<=100;i++){
;
}
;
}
}
问答题下面是一个Applet程序,其功能是构造n阶魔方阵,魔方阵是这样一个方阵,它的每一行,每一列和对角线之和均相等,例如3阶魔方阵为
8 1 6
3 5 7
4 9 2
要求用Applet实现上述魔方阵。窗口中包括提示栏,提示输入0~15之间的奇数;输入框,输入方阵的阶数;按钮;点击则输出魔方阵;画布用于输出结果。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下:
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.Math.*;
/*
<applet code="ex10_3.class" width=800 height=400>
</applet>
*/
public class ex10_3 extends Applet implements ActionListener
{
Panel pane=new Panel();
drawWnd dw;
Label 11 = new Label("输入(0~15的奇数): ");
TextField tf1 = new TextField(5);
Button btn = new Button("OK");
int[] [] a=new int[16] [16];
int n=15;
public void init()
{
pane.setLayout(new FlowLayout(FlowLayout.CENTER, 25,5));
pane.add(11);
pane.add(tf1);
pane.add(btn);
{{U}}pane.addActionListener(this){{/U}};
add("North",pane);
dw=new drawWnd();
add("South",dw);
}
class drawWnd extends Canvas
{
drawWnd ( )
{
setSize(300,300);
setBackground(Color.GRAY);
}
public void paint(Graphics g)
{
g.setColor(Color. GREEN);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
g.drawString(Integer.toString(a[i] [j]),i*20,j*20);
}
}
public void actionPerformed(ActionEvent ae)
}
try{
n=Integer.parseInt (tf1.getText ());
int i=1, j=1;
for (i=1;i<=n;i++)
for (j=1; j<=n; j++)
a[i] [j]=0;
j=n/2+1;
{{U}}a[i] [j]=1;{{/U}}
for ({{U}}int k=1; k<=n*n; k++{{/U}})
{
i--;
j++;
if((i<1)
j--;
}
else
{
if (i<1)
i=n;
if (j>n)
j=1;
}
if (a[i] [j]==0)
a[i] [j]=k;
else{
i=i+2;
j--;
a[i] [j]=k;
}
}
dw. repaint ( );
}
catch (NumberFormatException nfe)
{
tf1.setText ("error!");
}
}
}
{{B}}ex10_3.html{{/B}}
<HTML>
<HEAD>
<TITLE>ex10_3</TITLE>
</HEAD>
<BODY>
<applet code="ex10_3.class" width=800 height=400>
</applet>
</BODY>
</HTML>
问答题本题的功能是用按钮来控制文本框中文本的颜色。窗口中有两个带有文字标题的面板“Sample text”和“Text color control”,窗口的底部还有一个复选按钮“Disable changes”。在“Sample text”而板中有一个带有字符串的文本框,而在“Text color control”面板中有三个按钮:“Black”、“Red”和“Green”,并且每个按钮上都有一个对应颜色的圆。单击任意按钮,文本框中的文本变成对应的颜色,如果选中“Disable changes”复选项,则三个颜色按钮变为不可用,如果取消选中复选项,则三个按钮变为可用。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class java3 extends JFrame private JPanel upper,middle,lower; private JTextField text; private JButton black,red,green; private JCheckBox disable; public java3(String titleText) super(title Text); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); upper=new JPanel(); upper.setBorder(BorderFactory.createTitledBorder("Sample text")); upper.setlayout(new BorderLayOut()); text=new JTextField("Change the color of this text"); upper.add(text,BorderLayout.CENTER); middle=new JPanel(); middle.setBorder(BorderFactory.createTitledBorder("Text color control")); middle.setLayout(new FlowLayout(FlowLayout.CENTER)); black=new JButton("Black",new Colorlcon(Color.black)); black.addActionListener(new ButtonListener(Color.black)); middle.add(black); red=new JButton("Red",new Colorlcon(Color.red)); red.addActionListener(new ButtonListener(Color.red)); middle.add(red); green=new JButton("Green",new Colorlcon(Color.green)); green.addActionListener(new ButtonListener(Color.green)); middle.add(green); lower=new JPanel(); lower.setLayout(new FlowLayout(FlowLayout.RIGHT)); disable=new JCheckBox("Disable changes"); disable.addItemListener(new ItemListener() public void itemStateChanged(ItemEvent e) boolean enabled =(e.getStateChange() ==ItemEvent.DESELECTED); black.setEnabled(enabled); red.setEnabled(enabled); green.setEnabled(enabled); ); lower.add(disable); Container cp=getContentPane(); cp.add(upper.BorderLayout.NORTH); cp.add(middle,BorderLayout.CENTER); cp.add(lower,BorderLayout.SOUTH); pack(); setVisible(true); class ButtonListener extends ActionListener private Color c; public ButtonListener(Color c) this.c=c; public void actionPerformed(ActionEvent e) text.setForeground(c); class ColorIcon implements Icon private Color c; private static final int DIAMETER=10; public ColorIcon(Color c) c=c; public void paintIcon(Component cp,Graphics g,int x,int y) g.setColor(c); g.fillOval(x,y,DIAMETER,DIAMETER); g.setColor(Color.black); g.drawOval(x,y,DIAMETER,DIAMETER); public int getIconHeight() return DIAMETER; public int getlconWidth() return DIAMETER; public static void main(String[]args) new java3("advance");
问答题下面的程序的功能是利用实现Runnable接口的方法来创建线程,并利用它来执行响应的一些操作。最后使得m的执行结果为100。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
class ClassName implements Runnable
{
int n;
______
{
try
{
Thread.sleep(2000);
n=100;
}catch(Exception e) {}
}
public static void main(String args[])
{
try
{
ClassName a=new ClassName();
_____
thread1.start();
thread1.join();
int m=a.n;
System.out.println("m="+m);
}catch(Exception e) {}
}
}
