[問答題] 請(qǐng)完成下列Java程序:用Swing實(shí)現(xiàn)一個(gè)簡單的學(xué)生成績管理器,顯示出學(xué)生的姓名、Java成績、C++成績和這兩門課的平均成績,學(xué)生一共有4個(gè)人(
[問答題] 請(qǐng)完成下列Java程序:用Swing實(shí)現(xiàn)一個(gè)簡單的學(xué)生成績管理器,顯示出學(xué)生的姓名、Java成績、C++成績和這兩門課的平均成績,學(xué)生一共有4個(gè)人(Mike,Jack等)。要求可以修改學(xué)生的姓名和成績,并且能夠直接計(jì)算出平均成績,如改變Mike的java成績后,在平均成績欄會(huì)自動(dòng)更新為新的平均成績。
注意:請(qǐng)勿改動(dòng)main()主方法和其他已有語句內(nèi)容,僅在下劃線處填入適當(dāng)?shù)恼Z句。
源程序文件清單如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.TableModel;
public class ex03_2 extends JFrame
private JTable jt;
private String[][] strData;
public static void main(String[] args)
ex03_2 obj03_2=new ex03_2();obj03_2.pack();
obj03_2.setVisible(true);
public ex03_2() String[]columnNames="name","java","C++","average";strData=new String[][]
"Mike","70.0","80.0","75.0",
"Jack&quo
正確答案:(String)jt.getValueAt(nRow,i)strData[nRow][3]=Float.toString(fAve rage)
參考解析:本題主要考查用swing基本構(gòu)件設(shè)計(jì)圖形用戶界面,以及對(duì)二維數(shù)組的基本操作。解題關(guān)鍵是熟悉swing基本構(gòu)件JTable的使用方法,熟悉swing的基本事件機(jī)制,會(huì)使用 addTableModelListener()來注冊該模型的一個(gè) TableModelListener,一旦表格內(nèi)容改變,tableChanged()方法會(huì)被執(zhí)行,使用getFirstRow()方法來得到數(shù)據(jù)被改變的行并重新計(jì)算平均值,由于數(shù)組是用來存儲(chǔ)表格的數(shù)據(jù),可以直接更改該數(shù)組的值。本題中,第1個(gè)空,根據(jù)參數(shù)nRow和i定位相應(yīng)的數(shù)組中的數(shù)據(jù);第2個(gè)空,修改數(shù)組中記錄平均值的單元中的數(shù)據(jù)。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。