




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Java 程序設(shè)計實訓(xùn)報告冊 1 實 訓(xùn) 報 告 冊 實訓(xùn)課程 : Java 程序設(shè)計 項目題目:學(xué)生考試登錄系統(tǒng) 項目小組:周夜葵 楊君超 和澤慧 指導(dǎo)老師:田海燕 實訓(xùn)時間: 2010 年 6 月 28-2010 年 7 月 3 日 計算機網(wǎng)絡(luò) 08 1 班 Java 程序設(shè)計實訓(xùn)報告冊 2 目錄 一工具選擇, JDK的安裝和 NetBeans的調(diào)試 (1) 安裝 JDK6.0 和 Netbeans 3 (2) 環(huán)境變量的配置 4 (3) 使用 NetBeans 創(chuàng)建登錄窗口 5 二 用戶 登錄 功能模塊開發(fā) (1) 登陸模塊的思路 6 (2) 用戶登錄的功能實現(xiàn) 6 ( 3)用戶登錄核心代碼 7 ( 4)運行結(jié)果 9 三 用戶 注冊 功能模塊開發(fā) (1) 思路 9 ( 2)用戶注冊實現(xiàn) 9 ( 3)用戶注冊核心代碼 14 ( 4)用戶注冊運行結(jié)果 13 四 用戶 考試 功能模塊開發(fā) ( 1) 思路 15 ( 2) 具體實現(xiàn) 15 ( 3) 核心代碼 15 ( 1.1)運行結(jié)果 26 五 實訓(xùn)總結(jié) ( 1) 實訓(xùn) 心得 27 Java 程序設(shè)計實訓(xùn)報告冊 3 工具選擇, JDK 的安裝和 NetBeans 的調(diào)試 1 工具的選擇 在題目的選擇上我們選擇了學(xué)生考試系統(tǒng)的開發(fā), 開發(fā)環(huán)境是sun 公司的 NetBeans, NetBeans 是一個全功能的開放源碼 Java IDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署 Java 應(yīng)用,并將版本控制和 XML編輯融入其眾多功能之中。 NetBeans 可支持 Java 2 平臺標準版 (J2SE)應(yīng)用的創(chuàng)建、采用 JSP和 Servlet的 2層 Web應(yīng)用的創(chuàng)建,以及用于 2層 Web應(yīng)用的 API及軟件的核心組的創(chuàng)建。此外, NetBeans 最新牒還預(yù)裝了兩個 Web 服務(wù)器,即 Tomcat 和 GlassFish,從而免除了繁瑣的配置和安裝過程。所有這些都為 Java 開發(fā)人員創(chuàng)造了一個可擴展的開放源多平臺的 Java IDE,以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作,如 Solaris、 Linux、 Windows 或 Macintosh。 NetBeans 是一個為軟件開發(fā)者而設(shè)計的自由、開放的 IDE(集成開發(fā)環(huán)境),你可以在這里獲得許多需要的工具,包括建立桌面應(yīng)用、企業(yè)級應(yīng)用、 WEB開發(fā)和 JAVA 移動應(yīng)用程序開發(fā)、 C/C+,甚至 Ruby。NetBeans 可以非常方便的安裝于多種操作系統(tǒng)平臺,包括Windows,Linux,Mac OS 和 Solaris等操作系統(tǒng) NetBeans IDE6.1 版本提供了幾種新功能和一些功能的增強。提供了強大的 JavaScript 編輯功能,支持使用 Spring 的 WEB框架,并加強了與 MySQL的整合,使 NetBeans比較方便的使用 MySQL 數(shù)據(jù)庫,NetBeans 6.1 增強了性能,啟動速度提升 40%。在建立一個大工程時, Java 程序設(shè)計實訓(xùn)報告冊 4 有較低的內(nèi)存消耗和更快的響應(yīng)速度! 2. JDK 的安裝和 NetBeans 的調(diào)試 要安裝 NetBeans6.8必須安裝 JDK5.0或者 JDK6.0的版本 ,因為 NetBeans 是基于 JDK 的開發(fā)工具, JDK 屬于支持 NetBeans的環(huán)境。 安裝好后,配置環(huán)境變量, path 和 classpa, path 目錄指向: C:Program FilesJavajdk1.6.0_18bin 就是安裝 JDK所在 的 目 錄 。 Classpath 指 向 : C:Program FilesJavajdk1.6.0_18lib;.并在后面加上“ .”結(jié)束。 安裝 NetBeans6.8,安裝步驟省略,首先得注意的時候一定要記得配置環(huán)境變量,包括 path 和 classpath 一個也不能少否則安裝程序檢測不到 JDK的存在。 成功安裝如圖: 界面截圖: Java 程序設(shè)計實訓(xùn)報告冊 5 3 使用 NetBeans 創(chuàng)建登錄窗口 打開 NetBeans,點擊左邊窗格上的新建文件,選擇swing GUI 或者 awt GUI,選擇好存放項目的位置就可以進入圖形界面的開發(fā)環(huán)境進行設(shè)計。 首先要添加面板到設(shè)計面板上,如圖: ,然后再工具欄拖動相應(yīng)的按鈕和文本框到底層面板上,布局好相應(yīng)的按鈕后,進行 txt屬性的修改,再屬性欄找到txt屬性, 修改按鈕和標簽的文本屬性。 對于按鈕上的事件,則可以雙擊該按鈕進入到代碼的 Java 程序設(shè)計實訓(xùn)報告冊 6 編寫界面。 由于首次接觸 NetBeans 對其強大的功能和良好的交互性不夠了解,許多可用的功能沒有得到實現(xiàn)。正在進一步的學(xué)習(xí)和研究中。 用戶 登錄 功能模塊開發(fā) 1 登錄模塊的思路 首先我們的思路是,在登錄的窗體上輸入用戶名和密碼之后,把用戶名和密碼與注冊界面注冊生成的 txt文本中的內(nèi)容進行對比, 若 一致則登錄成功,否則不成功。但是現(xiàn)在的問題是在進行對比的時候由于代碼復(fù)雜,沒有實現(xiàn)這個功能,只好把判斷的代碼 加上注釋 進行傻瓜式的判斷。然后跳轉(zhuǎn)到考試的界面。 2 用戶登錄的功能實現(xiàn) 登錄 窗口作為 注冊窗口和考試界面的主窗體 ,在點擊注冊 按鈕時 調(diào)用 注冊窗體 并將父窗體隱藏,可以實現(xiàn)注冊界面的調(diào)用 ,注冊完后點擊“確定”可返回登錄界面,在登錄窗體上正確填寫相關(guān)資料后 點擊 登錄按鈕,可進入考試界面,進行考試。 Java 程序設(shè)計實訓(xùn)報告冊 7 3 用戶登錄的核心代碼 LoginPanel-登錄界面的類名 窗體界面設(shè)計的主要思路是:在主界面中添加面板,并在面板中添加相關(guān)組件。 面板的布局為: BorderLayout import java.awt.*; import java.awt.event.*; import javax.swing.*; /完成登錄界面的設(shè)計 class LoginPanel extends JPanel implements ActionListener JButton loginbtn,registerbtn,cancelbtn; JLabel titlelabel,namelabel,pwdlabel; JTextField namefield; JPasswordField pwdfield; JPanel panel1,panel2,panel3,panel21,panel22; JFrame iframe; public static void main(String args) new LoginPanel(); public LoginPanel() iframe=new JFrame(); JLabel titlelabel=new JLabel(歡迎使用考試系統(tǒng) ); titlelabel.setFont(new Font(隸書 ,Font.BOLD,24); JLabel namelabel=new JLabel(用戶名 :); JLabel pwdlabel=new JLabel(密 碼 :); JTextField namefield=new JTextField(16); JPasswordField pwdfield=new JPasswordField(16); pwdfield.setEchoChar(*); JButton loginbtn=new JButton(登錄 ); JButton registerbtn=new JButton(注冊 ); JButton cancelbtn=new JButton(取消 ); /裝入監(jiān)聽器 loginbtn.addActionListener(this); registerbtn.addActionListener(this); cancelbtn.addActionListener(this); panel1 = new JPanel(); panel2 = new JPanel(); panel3 = new JPanel(); Java 程序設(shè)計實訓(xùn)報告冊 8 panel21 = new JPanel(); panel22 = new JPanel(); BorderLayout b1=new BorderLayout(); setLayout(b1); panel1.add(titlelabel); panel21.add(namelabel); panel21.add(namefield); panel22.add(pwdlabel); panel22.add(pwdfield); panel2.add(panel21,BorderLayout.NORTH); panel2.add(panel22,BorderLayout.SOUTH); panel3.add(loginbtn); panel3.add(registerbtn); panel3.add(cancelbtn); iframe.add(panel1,BorderLayout.NORTH); iframe.add(panel2,BorderLayout.CENTER); iframe.add(panel3,BorderLayout.SOUTH); iframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); iframe.setSize(300,250); iframe.setTitle(登錄系統(tǒng) ); iframe.setVisible(true); /實現(xiàn)三個按鈕事件功能 public void actionPerformed(ActionEvent e) if(e.getActionCommand()=登錄 ) /登錄按鈕的相關(guān)事件 /if(namefield.getText().trim().equals() /JOptionPane.showMessageDialog(null,t 請輸入用戶名! ,用戶名空提示 ,JOptionPane.OK_OPTION); / /else /if(new String(pwdfield.getPassword().equals()JOptionPane.showMessageDialog(null,t請輸入密碼! ,密碼空提示 ,JOptionPane.OK_OPTION); / /else /if(namefield.getText().trim().equals(zyk)&(new String(pwdfield.getPassword().equals(123456) / / new Test_GUI(zyk); /實現(xiàn)與考試模塊界面的連接 iframe.dispose(); Java 程序設(shè)計實訓(xùn)報告冊 9 if(e.getActionCommand()=注冊 ) /注冊 按 鈕的相關(guān)事件 new Register_GUI(); /實現(xiàn)與 注冊 界面的連接 iframe.dispose(); if(e.getActionCommand()=取消 ) /取消 按鈕的相關(guān)事件 System.exit(0); 4 運行結(jié)果 用戶注冊功能模塊開發(fā) 1思路 簡單的注冊界面,有登陸提示信息,注冊提示信息,簡約的界面,通過用戶的注冊可以授權(quán)合法的用戶登陸考試, 可以進行界面的跳轉(zhuǎn)功能,主要正對完成注冊的跳 轉(zhuǎn),在注冊界面通過,獲取用戶名和密碼以及相關(guān)的信息后將信息提交到本地txt文本中(模擬數(shù)據(jù)庫)。以便后期登錄時從 txt中取得相應(yīng)合法用戶的賬戶和密碼。 2.用戶注冊的實現(xiàn) Java 程序設(shè)計實訓(xùn)報告冊 10 注冊窗口作為登陸窗口的子窗體,在點擊注冊的時候調(diào)用子窗體并將父窗體隱藏,就可以實現(xiàn)注冊界面的調(diào)用。 3.用戶注冊的核心代碼 Register_GUI-注冊界面的類名 窗體界面的布局分別為: GridBagLayout、 BoxLayout import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.Border; import java.util.*; public class Register_GUI Register_GUI() RegisterFrame rf=new RegisterFrame(); rf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); rf.setVisible(true); public static void main(String args) new Register_GUI(); /完成 注冊 界面的設(shè)計 class RegisterFrame extends JFrame Toolkit tool; public RegisterFrame() setTitle(用戶注冊 ); tool=Toolkit.getDefaultToolkit(); Dimension ds=tool.getScreenSize(); int w=ds.width; int h=ds.height; setBounds(w-300)/2,(h-300)/2,300,300); setResizable(false); RegisterPanel rp=new RegisterPanel(this); add(rp); class RegisterPanel extends JPanel implements ActionListener Jlabel titlelabel,namelabel,pwdlabel1,pwdlabel2,sexlabel,agelabel,classlabel; Java 程序設(shè)計實訓(xùn)報告冊 11 JTextField namefield,agefield; JPasswordField pwdfield1,pwdfield2; JButton commitbtn,resetbtn,cancelbtn; JRadioButton rbtn1,rbtn2; JComboBox combo; Vectorv; GridBagLayout gbl; GridBagConstraints gbc; JPanel panel; Box box; Component c; JFrame iframe; public RegisterPanel(JFrame frame) iframe=new JFrame(); titlelabel=new JLabel(用戶注冊 ); titlelabel.setFont(new Font(隸書 ,Font.BOLD,24); namelabel=new JLabel(用戶名 :); pwdlabel1=new JLabel(密 碼 :); pwdlabel2=new JLabel(確認密碼 :); sexlabel=new JLabel(性 別 :); agelabel=new JLabel(年 齡 :); classlabel=new JLabel(所屬班級 :); namefield=new JTextField(16); pwdfield1=new JPasswordField(16); pwdfield1.setEchoChar(*); pwdfield2=new JPasswordField(16); pwdfield2.setEchoChar(*); agefield=new JTextField(16); rbtn1=new JRadioButton(男 ); rbtn2=new JRadioButton(女 ); rbtn2.setSelected(true); ButtonGroup bg=new ButtonGroup(); bg.add(rbtn1); bg.add(rbtn2); v=new Vector(); v.add(計算機網(wǎng)絡(luò) 08); v.add(圖文圖形設(shè)計 08); v.add(水利水電 08); v.add(會計 08); v.add(自動化 08); combo=new JComboBox(v); commitbtn=new JButton(注冊 ); resetbtn=new JButton(重置 ); cancelbtn=new JButton(取消 ); Java 程序設(shè)計實訓(xùn)報告冊 12 /裝入監(jiān)聽器 commitbtn.addActionListener(this); resetbtn.addActionListener(this); cancelbtn.addActionListener(this); panel=new JPanel(); panel.add(rbtn1); panel.add(rbtn2); Border border=BorderFactory.createTitledBorder(); panel.setBorder(border); box = Box.createHorizontalBox(); box.add(commitbtn); box.add(Box.createHorizontalStrut(30); box.add(resetbtn); box.add(Box.createHorizontalStrut(30); box.add(cancelbtn); gbl=new GridBagLayout(); setLayout(gbl); gbc=new GridBagConstraints(); addCompnent(titlelabel,0,0,4,1); add(Box.createVerticalStrut(20); gbc.anchor=GridBagConstraints.CENTER; gbc.fill=GridBagConstraints.HORIZONTAL; gbc.weightx=0; gbc.weighty=100; addCompnent(namelabel,0,1,1,1); addCompnent(namefield,1,1,4,1); addCompnent(pwdlabel1,0,2,1,1); addCompnent(pwdfield1,1,2,4,1); addCompnent(pwdlabel2,0,3,1,1); addCompnent(pwdfield2,1,3,4,1); addCompnent(sexlabel,0,4,1,1); addCompnent(panel,1,4,1,1); gbc.anchor=GridBagConstraints.EAST; gbc.fill=GridBagConstraints.NONE; addCompnent(agelabel,2,4,1,1); gbc.fill=GridBagConstraints.HORIZONTAL; addCompnent(agefield,3,4,2,1); addCompnent(classlabel,0,5,1,1); addCompnent(combo,1,5,4,1); gbc.anchor=GridBagConstraints.CENTER; gbc.fill=GridBagConstraints.NONE; addCompnent(box,0,6,4,1); Java 程序設(shè)計實訓(xùn)報告冊 13 public void addCompnent(Component c,int x,int y,int w,int h) gbc.gridx=x; gbc.gridy=y; gbc.gridwidth=w; gbc.gridheight=h; gbc.gridx=x; add(c,gbc); /實現(xiàn)三個按鈕事件功能 public void actionPerformed(ActionEvent e) if(e.getSource()=commitbtn) /注冊按鈕的相關(guān)事件 Register rinfo=new Register(); =namefield.getText().trim(); rinfo.password=new String(pwdfield1.getPassword(); rinfo.sex=rbtn2.isSelected()?男 :女 ; rinfo.age=agefield.getText().trim(); rinfo.nclass=combo.getSelectedItem().toString(); if(.length()=0) JOptionPane.showMessageDialog(null,t用戶名不能為空 ); return; if(rinfo.password.length()=0) JOptionPane.showMessageDialog(null,t密碼不能為空 ); return; if(!rinfo.password.equals(new String(pwdfield2.getPassword() JOptionPane.showMessageDialog(null,密碼兩次輸入不一致,請重新輸 ); return; if(rinfo.age .length()=0) JOptionPane.showMessageDialog(null,t年齡不能為空 ); return; int age=Integer.parseInt(rinfo.age); if(age100) JOptionPane.showMessageDialog(null,t年 齡輸入不合法 ); return; JOptionPane.showMessageDialog(null,t注冊成功 ); new LoginPanel().setVisible(true); /實現(xiàn)與登錄界面的連接 iframe.dispose(); if(e.getSource()=resetbtn) /重置按鈕的相關(guān)事件 Java 程序設(shè)計實訓(xùn)報告冊 14 namefield.setText(); pwdfield1.setText(); pwdfield2.setText(); rbtn2.isSelected(); agefield.setText(); combo.setSelectedIndex(0); if(e.getSource()=cancelbtn) /退出按鈕的相關(guān)事件 System.exit(0); class Register String name; String password; String sex; String age; String nclass; 4用戶注冊運行結(jié)果 Java 程序設(shè)計實訓(xùn)報告冊 15 考試模塊功能 1.思路 首先 在同一個目錄下新建一個 test.txt 文件,加入試題,再把試題加載到考試界面模塊中;其次在其中添加倒計時模塊,實現(xiàn)時間的提醒功能,;再次,實現(xiàn)“開始考試”按鈕的功能,當(dāng)點擊“開始考試”按鈕時,跳出試題,可對試題進行答案的選擇;最后,實現(xiàn)“提交試題”按鈕的功能,點擊“提交試題”按鈕后,跳出得分情況。 2.具體實現(xiàn) 考試模塊 作為登陸窗口的子窗體,在 正確填寫相關(guān)資料后,點擊登錄按鈕后 調(diào)用子窗體并將父窗體隱藏,就可以實現(xiàn) 考試模塊 界面的調(diào)用 。 3.核心代碼 TestGUI-考試模塊 的類名 窗體界面 的主要 布局為: BorderLayout、 BoxLayout 以繼承線程類的方法實現(xiàn) 考試時間 倒計時 import java.awt.*; import java.awt.event.*; import java.io.*; import java.text.NumberFormat; Java 程序設(shè)計實訓(xùn)報告冊 16 import java.util.Vector; import javax.swing.*; import javax.swing.border.Border; public class Test_GUI public static void main(String args) new Test_GUI(zyk); public Test_GUI(String name) TestFrame tf = new TestFrame(name); tf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); tf.setVisible(true); /框架類 class TestFrame extends JFrame private Toolkit tool; private JMenuBar mb; private JMenu menutool,menuhelp,menuexit; private JMenuItem edition,about; private JDialog help; public TestFrame(String name) setTitle(學(xué)生在線考試系統(tǒng) ); tool = Toolkit.getDefaultToolkit(); Dimension ds = tool.getScreenSize(); int w = ds.width; int h = ds.height; setBounds(w-500)/2,(h-430)/2, 500, 450); /設(shè)置窗體圖標 Image image = tool.getImage(hu.jpg); setIconImage(image); setResizable(false); /-菜單條的設(shè)置 - mb = new JMenuBar(); setJMenuBar(mb); menutool = new JMenu(工具 (T); menuhelp = new JMenu(幫助 (H); menuexit = new JMenu(退出 (E); /設(shè)置助記符 menutool.setMnemonic(T); menuhelp.setMnemonic(H); menuexit.setMnemonic(E); mb.add(menutool); mb.add(menuhelp); mb.add(menuexit); Java 程序設(shè)計實訓(xùn)報告冊 17 edition = new JMenuItem(版本 (E),E); about = new JMenuItem(關(guān)于 (A),H); menuhelp.add(edition); /添加分隔線 menuhelp.addSeparator(); menuhelp.add(about); /設(shè)置快捷鍵 edition.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK); about.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK); BorderLayout bl =new BorderLayout(); setLayout(bl); TestPanel tp = new TestPanel(name); add(tp,BorderLayout.CENTER); /匿名內(nèi)部類添加事件 edition.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) JOptionPane.showMessageDialog(null, 單機版 Exam_System V1.1,版本信息 ,JOptionPane.PLAIN_MESSAGE);); about.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) help = new JDialog(new JFrame(); JPanel panel = new JPanel(); JTextArea helparea = new JTextArea(14,25); helparea.setText(本書以一個在線考試系統(tǒng)的開發(fā)貫穿全書+n系統(tǒng)的開發(fā)分為三個版本: +n 1.單機版 Stand-alone_Exam System V1.1+n 2.C/S 版 C/S_Exam System V1.2+n 3.數(shù)據(jù)庫版 Data_Exam System V1.3); helparea.setEditable(false); JScrollPane sp = new JScrollPane(helparea); panel.add(sp); help.setTitle(幫助信息 ); help.add(panel,Center); help.setBounds(350,200,300,300); help.setVisible(true); ); menuexit.addMouseListener(new MouseListener() public void mouseClicked(MouseEvent arg0) int temp = JOptionPane.showConfirmDialog(null, 您確認要 Java 程序設(shè)計實訓(xùn)報告冊 18 退出系統(tǒng)嗎? , 確認對話框 , JOptionPane.YES_NO_OPTION); if (temp = JOptionPane.YES_OPTION) System.exit(0); else if (temp = JOptionPane.NO_OPTION) return; public void mouseEntered(MouseEvent arg0) public void mouseExited(MouseEvent arg0) public void mousePressed(MouseEvent arg0) public void mouseReleased(MouseEvent arg0) ); /容器類 class TestPanel extends JPanel implements ActionListener Private JLabel totaltime,lifttime,ttimeshow,ltimeshow,textinfo,userinfo; private JLabel copyright; /版權(quán)信息標簽 private JButton starttest,back,next,commit; private JTextArea area; private JRadioButton rbtna,rbtnb,rbtnc,rbtnd; private String totaltimer = ,lifttimer=,username=; private int i = 0,n = 0; private Box box,box1,box2,box3,box4,box5; private Question question; private ClockDisplay clock; private int index = 0; private int time=0; public TestPanel(String name) username = name; totaltimer = 00:0:00; lifttimer = 00:00:00; totaltime = new JLabel(總的考試時間是: ); lifttime = new JLabel(剩余考試時間是: ); ttimeshow = new JLabel(totaltimer); ttimeshow.setForeground(Color.RED); ltimeshow = new JLabel(lifttimer); ltimeshow.setForeground(Color.RED); textinfo = new JLabel(第 +i+題 +,共 +n+題 ); userinfo = new JLabel(考生 : +username); copyright = new JLabel(); copyright.setHorizontalAlignment(JLabel.RIGHT); Java 程序設(shè)計實訓(xùn)報告冊 19 copyright.setFont(new Font(宋體 ,Font.PLAIN,14); copyright.setForeground(Color.GRAY); copyright.setText(楊君超、周夜葵、和澤慧 ); starttest = new JButton(開始考試 ); back = new JButton(上一題 ); back.setEnabled(false); next = new JButton(下一題 ); next.setEnabled(false); commit = new JButton(提交試卷 ); commit.setEnabled(false); area = new JTextArea(10,10); area.setText(考場規(guī)則 :n + 一、考試前 15分鐘,憑準考證和身份證進入考場,對號入座,將準考證和身份證放在桌面右上角,便于監(jiān)考人員檢查。n +二、筆譯考試開考三十分鐘后不得入場,答題結(jié)束后提交試卷后可以申請離場。 n +三、考生要愛惜考場的機器和相關(guān)設(shè)備,嚴格按照規(guī)定的操作說明進行操作,如有人為損壞,照價賠償。 ); JScrollPane sp = new JScrollPane(area); area.setEditable(false); rbtna = new JRadioButton(A); rbtnb = new JRadioButton(B); rbtnc = new JRadioButton(C); rbtnd = new JRadioButton(D); rbtna.setEnabled(false); rbtnb.setEnabled(false); rbtnc.setEnabled(false); rbtnd.setEnabled(false); ButtonGroup bg = new ButtonGroup(); bg.add(rbtna); bg.add(rbtnb); bg.add(rbtnc); bg.add(rbtnd); Border border=BorderFactory.createTitledBorder(選項 ); JPanel panel = new JPanel(); panel.add(rbtna); panel.add(rbtnb); panel.add(rbtnc); panel.add(rbtnd); panel.setBorder(border); box = Box.createVerticalBox(); box1 = Box.createHorizontalBox(); box2 = Box.createHorizontalBox(); box3 = Box.createHorizontalBox(); box4 = Box.createHorizontalBox(); Java 程序設(shè)計實訓(xùn)報告冊 20 box5 = Box.createHorizontalBox(); new JDialog(new JFrame(); /注冊監(jiān)聽事件 starttest.addActionListener(this); back.addActionListener(this); next.addActionListener(this); commit.addActionListener(this); /添加組件,采用箱式布局 box1.add(totaltime); box1.add(Box.createHorizontalStrut(5); box1.add(ttimeshow); box1.add(Box.createHorizontalStrut(15); box1.add(lifttime); box1.add(Box.createHorizontalStrut(5); box1.add(ltimeshow); box1.add(Box.createHorizontalStrut(15); box1.add(starttest); box2.add(textinfo); box2.add(Box.createHorizontalStrut(30); box2.add(userinfo); box3.add(sp, BorderLayout.CENTER); box4.add(panel); box4.add(Box.createHorizontalStrut(5); box4.add(back); box4.add(Box.createHorizontalStrut(5); box4.add(next); box4.add(Box.createHorizontalStrut(5); box4.add(commit); box5.add(Box.createHorizontalStrut(250); box5.add(copyright); box.add(box1); box.add(Box.createVerticalStrut(10); box.add(box2); box.add(Box.createVerticalStrut(10); box.add(box3); box.add(Box.createVerticalStrut(10); box.add(box4); box.add(Box.createVerticalStrut(20); box.add(box5,BorderLayout.EAST); add(box); /加載考試時間和試題 Java 程序設(shè)計實訓(xùn)報告冊 21 testTime(); createQuestion(); ttimeshow.setText(time+分鐘 ); ltimeshow.setText(time+分鐘 ); public void display(Question q) String answer=; answer=q.getSelectedAnswer(); area.setText(n+q.getDetail(); if(answer=A) rbtna.setSelected(true); else if(answer=B) rbtnb.setSelected(true); else if(answer=C) rbtnc.setSelected(true); else if(answer=D) rbtnd.setSelected(true); textinfo.setText(第 + (index+1) + 題 +,共 + question.length+題 ); /從文件中讀取出來的試題加載到程序中 public void createQuestion() Vector qStore =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省商洛市2024-2025學(xué)年九上化學(xué)期末聯(lián)考模擬試題含解析
- 山西省朔州懷仁縣聯(lián)考2024年物理八上期末經(jīng)典試題含解析
- 低碳金融與氣候風(fēng)險保險產(chǎn)品設(shè)計趨勢預(yù)測
- 2025年考研政治理論時政熱點知識試題庫(含答案)
- 精準設(shè)備管理的新動力:AR設(shè)備點檢系統(tǒng)的應(yīng)用實踐與未來展望
- 醫(yī)療廢物處理技術(shù)革新:智能系統(tǒng)的成功案例分析
- 市政管網(wǎng)建設(shè)環(huán)境保護管理體系與措施
- 2025至2030中國自我美黑產(chǎn)品行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國自動物料搬運行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 教育機器人教具行業(yè)現(xiàn)狀與發(fā)展策略
- 麻醉與人文關(guān)懷(wxh)幻燈片
- 危巖治理工程分項工程安全保證措施
- YY/T 0065-2016眼科儀器裂隙燈顯微鏡
- 裝飾裝修工程-工程施工設(shè)計方案
- 記憶原理及方法課件
- 頸脊髓損傷 -課件
- 老年俱樂部建設(shè)項目可行性研究報告
- 國外不規(guī)則氣象報文課件
- 杭州網(wǎng)約車從業(yè)資格考試題庫與答案
- 格力好易控集中控制器使用說明
- 巨光Y型空氣消毒器
評論
0/150
提交評論