版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> JAVA課程設(shè)計(jì)報(bào)告</p><p><b> JAVA小日歷組件</b></p><p><b> 學(xué)生姓名: </b></p><p><b> 學(xué) 號(hào): </b></p><p> 年級(jí)專業(yè):07級(jí)電子商務(wù)2班</p>&
2、lt;p><b> 指導(dǎo)老師: </b></p><p> 學(xué) 院:信息科學(xué)技術(shù)學(xué)院</p><p> 目 錄</p><p> 1.設(shè)計(jì)目標(biāo)…………………………………………………3</p><p> 2.設(shè)計(jì)思想…………………………………………………3</p><
3、p> 3.類及對(duì)象設(shè)計(jì)……………………………………………3</p><p> 4.程序源代碼………………………………………………4</p><p> 5.調(diào)試記錄…………………………………………………14</p><p> 6.總結(jié)………………………………………………………15</p><p> 7.參考文獻(xiàn)………………………
4、…………………………17</p><p> 8.致謝…………………………………………………17</p><p> JAVA小日歷組件設(shè)計(jì)</p><p><b> 1.設(shè)計(jì)目標(biāo)</b></p><p> 本課程設(shè)計(jì)是一個(gè)JAVA小日歷組件的設(shè)計(jì),利用Frame框架類、面板類進(jìn)行圖形化界面設(shè)計(jì),實(shí)現(xiàn)小日歷的公歷顯示
5、等功能。</p><p><b> 2.設(shè)計(jì)思想</b></p><p> ?。?)本小日歷設(shè)計(jì)主體結(jié)構(gòu)為:設(shè)計(jì)一個(gè)框架MainFrame,然后在MainFrame里添加一個(gè)MainPanel面板。定義一個(gè)MainPanel面板類,該面板以邊布局格式,所有其他面板、標(biāo)簽等均添加到該面板中。</p><p> (2)MainPanel面板北部
6、(上方),添加一個(gè)年月面板YearMonthPanel。該年月面板主要放年份顯示、月份顯示、標(biāo)題顯示。YearMonthPanel面板也使用邊布局格式,西部添加一個(gè)年份面板,放年份信息;中部添加一個(gè)TextPanel面板,放標(biāo)題文本顯示信息;東部添加一個(gè)月份面板MonthPanel,放月份下拉框信息。</p><p> (3)MainPanel主面板的中部,添加一個(gè)DaysPanel面板用于放置月份的天數(shù)表格信
7、息。</p><p> (4)MainPanel主面板的南部(下方),添加一個(gè)InfoPanel面板,主要用于放置顯示個(gè)人信息。</p><p> ?。?)InfoPanel面板上設(shè)計(jì)添加一個(gè)超級(jí)鏈接標(biāo)簽,鏈接到個(gè)人博客。</p><p> 3.設(shè)計(jì)類及對(duì)象設(shè)計(jì)</p><p> 在本程序中:定義了一個(gè)Frame類,主要定義一個(gè)窗體框架
8、,用于顯示日歷信息,并在主函數(shù)中只創(chuàng)建一個(gè)該窗體對(duì)象實(shí)現(xiàn)程序功能。</p><p> 定義了一個(gè)主日歷面板類Xiaorili,其中包含了日歷設(shè)計(jì)所用到的全局變量、功能函數(shù)等,在Frame類里定義了其對(duì)象。在該日歷面板類里又設(shè)計(jì)了一個(gè)內(nèi)部類CalendarTable表格類,用于布局日歷天的顯示格式。</p><p> 為了設(shè)計(jì)一個(gè)超級(jí)鏈接,定義了一個(gè)LinkLable類,單獨(dú)保存在一個(gè)文
9、件LinkTbale.java中,在日歷面板類Xiaorili里定義了其對(duì)象。</p><p><b> 4.程序源代碼</b></p><p> ?。?)xiaoril.java文件代碼:</p><p> import java.awt.*;</p><p> import java.awt.event.*;&
10、lt;/p><p> import java.util.*;</p><p> import javax.swing.*;</p><p> import javax.swing.event.*;</p><p> import javax.swing.table.*;</p><p> public class
11、 Xiaorili extends JApplet {</p><p> //==================================================</p><p> /*定義全局變量*/ </p><p> public static final Color background = Color.white;//背景色&l
12、t;/p><p> public static final Color foreground = Color.black;//前景色</p><p> public static final Color headerBackground = Color.DARK_GRAY;//星期</p><p> public static final Color header
13、Foreground = Color.white;//星期前景色</p><p> public static final Color selectedBackground = Color.green;//選中背景色</p><p> public static final Color selectedForeground = Color.white;//選中前景色 </p&
14、gt;<p> public static final String WeekSun = "星期日"; //星期標(biāo)簽名稱</p><p> public static final String WeekMon = "星期一"; </p><p> public static final String WeekTue = "
15、;星期二"; </p><p> public static final String WeekWed = "星期三"; </p><p> public static final String WeekThu = "星期四"; </p><p> public static final String Week
16、Fri = "星期五"; </p><p> public static final String WeekSat = "星期六";</p><p> private JPanel MainPanel;//日歷面板</p><p> private JLabel yearsLabel;//“年份”標(biāo)簽</p>
17、<p> private JSpinner yearsSpinner;//年份組合框</p><p> private JLabel monthsLabel;//“月份”標(biāo)簽</p><p> private JComboBox monthsComboBox; //12月份下拉框</p><p> private JLabel textLabe
18、l;//標(biāo)題顯示標(biāo)簽</p><p> private JLabel InfoLabel;//個(gè)人信息顯示標(biāo)簽 </p><p> private JTable daysTable; //日表格</p><p> private AbstractTableModel daysModel;//天單元表格</p><p> priva
19、te Calendar calendar;//日歷對(duì)象</p><p> //==================================================</p><p><b> /*函數(shù)定義*/</b></p><p> public Xiaorili() {//構(gòu)造函數(shù)</p><p>
20、; MainPanel = (JPanel) getContentPane();</p><p><b> }</b></p><p> public void init() {//初始化面板界面函數(shù)</p><p> MainPanel.setLayout(new BorderLayout());</p><p&g
21、t; calendar = Calendar.getInstance();//默認(rèn)方式,以本地的時(shí)區(qū)和地區(qū)來(lái)構(gòu)造Calendar</p><p> //--------------------------------------</p><p> yearsLabel = new JLabel("年份: "); //設(shè)置年份標(biāo)簽顯示</p><
22、p> yearsSpinner = new JSpinner();//構(gòu)造年份spinner組合框</p><p> yearsSpinner.setEditor(new JSpinner.NumberEditor(yearsSpinner, "0000"));</p><p> yearsSpinner.setValue(new Integer(calen
23、dar.get(Calendar.YEAR)));</p><p> yearsSpinner.addChangeListener(new ChangeListener() {//注冊(cè)該組合框的事件監(jiān)聽(tīng)器</p><p> public void stateChanged(ChangeEvent changeEvent) {</p><p> int day
24、= calendar.get(Calendar.DAY_OF_MONTH);</p><p> calendar.set(Calendar.DAY_OF_MONTH, 1);</p><p> calendar.set(Calendar.YEAR, ((Integer) yearsSpinner.getValue()).intValue());</p><p>
25、 int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);</p><p> calendar.set(Calendar.DAY_OF_MONTH, day > maxDay ? maxDay : day);</p><p> updateView();//更新顯示</p><p>&l
26、t;b> }</b></p><p><b> });</b></p><p> //-------------------------------------- </p><p> JPanel yearMonthPanel = new JPanel();//定義年月面板</p><p>
27、MainPanel.add(yearMonthPanel, BorderLayout.NORTH);//添加年月面板到日歷面板的南面(最上方)</p><p> yearMonthPanel.setLayout(new BorderLayout());//邊布局模式</p><p> JPanel yearPanel = new JPanel();//構(gòu)建年份面板</p>
28、<p> yearMonthPanel.add(yearPanel, BorderLayout.WEST);//年份面板添加到年月面板西部(左邊)</p><p> yearPanel.setLayout(new BorderLayout());//設(shè)置年份面板為邊布局并添加年份標(biāo)簽和組合框</p><p> yearPanel.add(yearsLabel, Borde
29、rLayout.WEST);</p><p> yearPanel.add(yearsSpinner, BorderLayout.CENTER);</p><p> //-------------------------------------- </p><p> monthsLabel = new JLabel("月份: "); //設(shè)
30、置月份標(biāo)簽顯示</p><p> monthsComboBox = new JComboBox();//月份下拉框</p><p> for (int i = 1; i <= 12; i++) { //構(gòu)造下拉框的12個(gè)月份</p><p> monthsComboBox.addItem(new Integer(i));</p><
31、p><b> } </b></p><p> monthsComboBox.setSelectedIndex(calendar.get(Calendar.MONTH));//下拉框當(dāng)前月份為選中狀態(tài) </p><p> monthsComboBox.addActionListener(new ActionListener() { //注冊(cè)月份下拉框的事件監(jiān)
32、聽(tīng)器</p><p> public void actionPerformed(ActionEvent actionEvent) {</p><p> int day = calendar.get(Calendar.DAY_OF_MONTH);</p><p> calendar.set(Calendar.DAY_OF_MONTH, 1);</p>
33、<p> calendar.set(Calendar.MONTH, monthsComboBox.getSelectedIndex());</p><p> int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);</p><p> calendar.set(Calendar.DAY_OF_MONTH,
34、 day > maxDay ? maxDay : day);</p><p> updateView();//更新面板顯示 </p><p><b> } </b></p><p><b> }); </b></p><p> //---------------------------
35、----------- </p><p> JPanel monthPanel = new JPanel();//定義月份面板</p><p> yearMonthPanel.add(monthPanel, BorderLayout.EAST);//添加月份面板到年月面板的東面(右面)</p><p> monthPanel.setLa
36、yout(new BorderLayout());//月份面板設(shè)為邊布局方式</p><p> monthPanel.add(monthsLabel, BorderLayout.WEST);//添加月份名稱標(biāo)簽到月份面板西面(左面)</p><p> monthPanel.add(monthsComboBox, BorderLayout.CENTER);//添加月份下拉框到月份面板中間
37、</p><p> //--------------------------------------</p><p> textLabel = new JLabel("JAVA小日歷-061114052"); //設(shè)置標(biāo)題標(biāo)簽顯示 </p><p> JPanel txetPanel = new JPanel();//定義標(biāo)題文本
38、顯示面板</p><p> yearMonthPanel.add(txetPanel,BorderLayout.CENTER);//添加標(biāo)題文本顯示面板到年月面板中間</p><p> txetPanel.add(textLabel,BorderLayout.CENTER);//添加標(biāo)題文本標(biāo)簽到面板</p><p> //------------------
39、--------------------</p><p> InfoLabel = new JLabel("學(xué)號(hào):061114052 姓名:李志文 班級(jí):06教育班"); //設(shè)置個(gè)人信息標(biāo)簽顯示 </p><p> JPanel InfoPanel = new JPanel();//定義底部個(gè)人信息顯示面板</p><p> M
40、ainPanel.add(InfoPanel,BorderLayout.SOUTH);//添加個(gè)人信息顯示面板到日歷面板南方(下方)</p><p> InfoPanel.add(InfoLabel);//添加信息標(biāo)簽文本標(biāo)簽到面板</p><p> //--------------------------------------</p><p> JPane
41、l Link = new JPanel();//設(shè)置超級(jí)鏈接到我的博客</p><p> InfoPanel.add(new LinkLabel("訪問(wèn)志文工作室", "http://www.zhiwenweb.cn"));</p><p> //-------------------------------------- </p>
42、<p> daysModel = new AbstractTableModel() { //設(shè)置7行7列</p><p> public int getRowCount() { </p><p> return 7; </p><p><b> } </b></p><p> public int
43、getColumnCount() { </p><p> return 7; </p><p><b> }</b></p><p> public Object getValueAt(int row, int column) {</p><p> if (row == 0) { //第一行顯示星期</p&
44、gt;<p> return getHeader(column);</p><p><b> }</b></p><p><b> row--;</b></p><p> Calendar calendar = (Calendar) Xiaorili.this.calendar.clone();<
45、;/p><p> calendar.set(Calendar.DAY_OF_MONTH, 1);</p><p> int dayCount = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); </p><p> int moreDayCount = calendar.get(Calendar.DAY_OF_WE
46、EK) - 1;</p><p> int index = row * 7 + column;</p><p> int dayIndex = index - moreDayCount + 1;</p><p> if (index < moreDayCount || dayIndex > dayCount) {</p><p&
47、gt; return null;</p><p><b> } else {</b></p><p> return new Integer(dayIndex);</p><p><b> }</b></p><p><b> }</b></p><
48、;p><b> };</b></p><p> daysTable = new CalendarTable(daysModel, calendar); //構(gòu)造日表格</p><p> daysTable.setCellSelectionEnabled(true);//設(shè)置表格單元格可選擇</p><p> daysTable.s
49、etSelectionMode(ListSelectionModel.SINGLE_SELECTION);</p><p> daysTable.setDefaultRenderer(daysTable.getColumnClass(0), new TableCellRenderer() { </p><p> public Component getTableCellRenderer
50、Component(JTable table, Object value, boolean isSelected, </p><p> boolean hasFocus, int row, int column) { </p><p> String text = (value == null) ? "" : value.toString(); </p>
51、<p> JLabel cell = new JLabel(text);</p><p> cell.setOpaque(true); //繪制邊界內(nèi)的所有像素</p><p> if (row == 0) { //第一行顯示星期,設(shè)置為星期的前景色和背景色</p><p> cell.setForeground(headerForegroun
52、d);</p><p> cell.setBackground(headerBackground);</p><p><b> } else { </b></p><p> if (isSelected) { //日期單元格如果選中,則設(shè)置為日期選中的前、背景色</p><p> cell.setForegrou
53、nd(selectedForeground); </p><p> cell.setBackground(selectedBackground); </p><p> } else { //設(shè)置日期單元格的普通前、背景色</p><p> cell.setForeground(foreground);</p><p> cell.se
54、tBackground(background);</p><p><b> }</b></p><p><b> }</b></p><p> return cell; </p><p><b> } </b></p><p><b>
55、 });</b></p><p> updateView();</p><p> MainPanel.add(daysTable, BorderLayout.CENTER);//添加日面板到日歷面板中間</p><p><b> } </b></p><p> //-----------------
56、---------------------</p><p> public static String getHeader(int index) {//設(shè)置第一行星期的顯示</p><p> switch (index) {</p><p><b> case 0:</b></p><p> return Wee
57、kSun;</p><p><b> case 1:</b></p><p> return WeekMon;</p><p><b> case 2:</b></p><p> return WeekTue;</p><p><b> case 3:&l
58、t;/b></p><p> return WeekWed;</p><p><b> case 4:</b></p><p> return WeekThu;</p><p><b> case 5:</b></p><p> return WeekFri;
59、</p><p><b> case 6:</b></p><p> return WeekSat;</p><p><b> default:</b></p><p> return null;</p><p><b> }</b></
60、p><p><b> }</b></p><p> //--------------------------------------</p><p> public void updateView() {//更新面板顯示方法</p><p> daysModel.fireTableDataChanged();<
61、/p><p> daysTable.setRowSelectionInterval(calendar.get(Calendar.WEEK_OF_MONTH),</p><p> calendar.get(Calendar.WEEK_OF_MONTH));</p><p> daysTable.setColumnSelectionInterval(calendar.
62、get(Calendar.DAY_OF_WEEK) - 1,</p><p> calendar.get(Calendar.DAY_OF_WEEK) - 1);</p><p><b> }</b></p><p> //==================================================</p>
63、;<p> public static class CalendarTable extends JTable {//表格類</p><p> private Calendar calendar;</p><p> public CalendarTable(TableModel model, Calendar calendar) {//構(gòu)造方法</p>&l
64、t;p> super(model);</p><p> this.calendar = calendar;</p><p><b> }</b></p><p> //--------------------------------------</p><p> public void changeSel
65、ection(int row, int column, boolean toggle, boolean extend) {//選擇表格單元格時(shí)</p><p> super.changeSelection(row, column, toggle, extend);</p><p> if (row == 0) {//選擇為第一行(星期)時(shí)不改變單元格</p><p&
66、gt;<b> return;</b></p><p><b> }</b></p><p> Object obj = getValueAt(row, column);</p><p> if (obj != null) {</p><p> calendar.set(Calendar.
67、DAY_OF_MONTH, ((Integer)obj).intValue());</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p&
68、gt;<p> (2)LinkLabel.java文件代碼:</p><p> import java.awt.*;</p><p> import javax.swing.*;</p><p> import java.awt.event.*;</p><p> public class LinkLabel exte
69、nds JLabel {</p><p> private String text, url;</p><p> private boolean isSupported;</p><p> public LinkLabel(String text, String url) {</p><p> this.text = text;//顯
70、示文本</p><p> this.url = url;//鏈接地址</p><p><b> try {</b></p><p> this.isSupported = Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Act
71、ion.BROWSE);</p><p><b> } </b></p><p> catch (Exception e) {//捕獲瀏覽器異常</p><p> this.isSupported = false;</p><p><b> }</b></p><p>
72、; setText(false);</p><p> addMouseListener(new MouseAdapter() {//注冊(cè)鼠標(biāo)單擊事件監(jiān)聽(tīng)器</p><p> public void mouseEntered(MouseEvent e) {</p><p> setText(isSupported);</p><p>
73、 if (isSupported)</p><p> setCursor(new Cursor(Cursor.HAND_CURSOR));//鼠標(biāo)形狀為hand形式</p><p><b> }</b></p><p> public void mouseExited(MouseEvent e) {//移開(kāi)鼠標(biāo)時(shí)</p>&
74、lt;p> setText(false);</p><p><b> }</b></p><p> public void mouseClicked(MouseEvent e) {//鼠標(biāo)單擊時(shí)</p><p><b> try {</b></p><p> Desktop.getD
75、esktop().browse(new java.net.URI(LinkLabel.this.url));//調(diào)用默認(rèn)瀏覽器打開(kāi)鏈接</p><p><b> }</b></p><p> catch (Exception ex) {</p><p><b> }</b></p><p>&
76、lt;b> }</b></p><p><b> });</b></p><p><b> }</b></p><p> private void setText(boolean b) {//設(shè)置標(biāo)簽顯示文本</p><p><b> if (!b)</b
77、></p><p> setText("<html><font color=red><u>" + text);//鼠標(biāo)移到標(biāo)簽外顯示為紅色字體</p><p><b> else</b></p><p> setText("<html><font c
78、olor=green><u>" + text);//鼠標(biāo)移到標(biāo)簽上面顯示為綠色字體</p><p><b> }</b></p><p><b> }</b></p><p> ?。?)MainFrame.java文件代碼:</p><p><b> /*
79、* </b></p><p> * @(#) MainFrame.java</p><p><b> * 主窗體</b></p><p> * @author 志文工作室:www.zhiwenweb.cn</p><p><b> */</b></p><p&
80、gt; import java.awt.*;</p><p> import javax.swing.*;</p><p><b> //構(gòu)造窗體類</b></p><p> public class MainFrame extends JFrame{</p><p> public MainFrame(){&
81、lt;/p><p> super("JAVA小日歷-志文工作室-http://www.zhiwenweb.cn");//創(chuàng)建窗體并設(shè)置標(biāo)題</p><p> this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//單擊窗口關(guān)閉按鈕關(guān)閉窗體</p><p> Xiaorili Xiaorili
82、= new Xiaorili();//創(chuàng)建小日歷對(duì)象</p><p> Xiaorili.init();//初始化面板</p><p> this.getContentPane().add(Xiaorili);</p><p> this.setSize(450, 200); //框架大小</p><p> this.setVisib
83、le(true);//設(shè)置可見(jiàn)性</p><p> this.setResizable(false);//窗體不可改變大小</p><p> this.pack();</p><p><b> }</b></p><p><b> /*主函數(shù)調(diào)用*/</b></p><p
84、> public static void main(String[] args){</p><p> new MainFrame();</p><p><b> }</b></p><p><b> }</b></p><p><b> 5.調(diào)試記錄</b>&l
85、t;/p><p><b> 程序功能調(diào)試如下:</b></p><p> ?。?)運(yùn)行程序,出現(xiàn)日歷界面:</p><p> ?。?)單擊年份的組合框側(cè)邊箭頭,改變年份,則日歷跟隨改變:</p><p> (3)單擊月份下拉框,改變?cè)路荩瑒t日歷也跟隨改變:</p><p> ?。?)鼠標(biāo)移動(dòng)到“訪
86、問(wèn)志文工作室”標(biāo)簽上,則字體顏色變?yōu)榫G色:</p><p> (5)鼠標(biāo)單擊超級(jí)鏈接標(biāo)簽,則調(diào)用默認(rèn)瀏覽器打開(kāi)了我的博客主頁(yè):</p><p><b> 6.總結(jié)</b></p><p> ?。?)選題目的:本次課程設(shè)計(jì)為課本后設(shè)計(jì)題目任選一題進(jìn)行設(shè)計(jì)。思考一段時(shí)間后,我決定做一個(gè)小日歷組件的設(shè)計(jì)。主要考慮到本學(xué)期時(shí)間少課程內(nèi)容多,JAVA
87、課程基礎(chǔ)內(nèi)容掌握并不是很抓實(shí),而對(duì)于設(shè)計(jì)一個(gè)小日歷組件,由于其功能簡(jiǎn)單設(shè)計(jì)也相對(duì)較易,對(duì)于我個(gè)人的學(xué)習(xí)情況比較合適,并且通過(guò)設(shè)計(jì)這樣的一個(gè)日歷小組件,也能使自己對(duì)JAVA的一些基礎(chǔ)知識(shí)掌握的更加牢固。</p><p> ?。?)對(duì)于本小日歷的設(shè)計(jì),首先考慮其功能有哪些,需要顯示什么,如何進(jìn)行窗體構(gòu)建布局,需要用哪些知識(shí)點(diǎn),如相關(guān)的類和對(duì)象等。最后,就是根據(jù)初步設(shè)計(jì)的功能和布局構(gòu)架,考慮用源代碼進(jìn)行實(shí)現(xiàn)了。<
88、/p><p> (3)本小日歷組件在設(shè)計(jì)過(guò)程中參考了一些網(wǎng)絡(luò)上的日歷組件設(shè)計(jì)程序,只是那些程序大都使用功能相對(duì)較豐富,涉及到的知識(shí)也比較多,對(duì)于自己目前所掌握的內(nèi)容來(lái)說(shuō)有點(diǎn)廣博。不過(guò)那些程序?qū)θ諝v實(shí)現(xiàn)的一些思想對(duì)我確實(shí)有很多啟發(fā)。本小日歷組件設(shè)計(jì)過(guò)程中也參考了一些他人設(shè)計(jì)的代碼。在設(shè)計(jì)本小日歷組件過(guò)程中遇到過(guò)許多問(wèn)題,最后都是在網(wǎng)絡(luò)搜集詢問(wèn)的幫助下一一得以解決。下面列舉幾個(gè)參考中比較重要的相關(guān)內(nèi)容:</p&g
89、t;<p> .JAVA Calendar方法:Calendar 抽象類定義了足夠的方法,讓我們能夠表述日歷的規(guī)則。我們也可以自己的 Calendar 實(shí)現(xiàn)類,然后將它作為 Calendar 對(duì)象返回(面向?qū)ο蟮奶匦?。在 Calendar 的方法中,get() 和 add() 會(huì)讓 Calendar 立刻刷新。本程序的中心設(shè)計(jì)即是利用Calendar類來(lái)實(shí)現(xiàn)。</p><p> javax.s
90、wing.JSpinner用法:讓用戶從一個(gè)有序序列中選擇一個(gè)數(shù)字或者一個(gè)對(duì)象值的單行輸入字段。它能夠方便地選擇日期、數(shù)字或列表中的選項(xiàng)。Spinner 通常提供一對(duì)帶小箭頭的按鈕以便逐步遍歷序列元素。鍵盤(pán)的向上/向下方向鍵也可循環(huán)遍歷元素。也允許用戶在 spinner 中直接輸入合法值。JSpinner顯示不同的內(nèi)容,采用不同的模型,像SpinnerDateModel,SpinnerListModel,SpinnerNumberMod
91、el,只要對(duì)模型修改,就可以實(shí)現(xiàn)想要的精確的功能。本程序利用該組件實(shí)現(xiàn)了年份的修改。</p><p> setOpaque 用法:setOpaque (false)的作用是將button的背景色改為其parent的背景色。如果為 true,則該組件繪制其邊界內(nèi)的所有像素。否則該組件可能不繪制其某些或所有像素,從而允許其下面的像素透視出來(lái)。 </p><p> 基于Java Swing的
92、超鏈接標(biāo)簽和超鏈接按鈕的實(shí)現(xiàn): java.awt.Desktop類的java.awt.Desktop.isDesktopSupported()可以獲取當(dāng)前系統(tǒng)是否支持java awt桌面擴(kuò)展.如果支持可以獲取當(dāng)前系統(tǒng)的Desktop ,則使用:</p><p> java.awt.Desktop dp = java.awt.Desktop.getDesktop(); </p><p>
93、 dp.browse(java.net.URI); 就可以啟動(dòng)系統(tǒng)默認(rèn)的瀏覽器。本程序自定義一個(gè)超鏈接標(biāo)簽控件[LinkLabel]類進(jìn)行實(shí)現(xiàn)該功能。</p><p> java中實(shí)現(xiàn)表格的多表頭顯示:主要就是三個(gè)應(yīng)用類ColumnGroup, GroupableTableHeader,GroupableTableHeaderU和一個(gè)示例類GroupableHeaderExample。</p>&
94、lt;p> 經(jīng)過(guò)了長(zhǎng)時(shí)間的反復(fù)編寫(xiě)調(diào)試,課本和網(wǎng)上查閱相關(guān)資料相關(guān)文章,終于完成了整個(gè)課程設(shè)計(jì)。在這個(gè)過(guò)程中,在把書(shū)本上的知識(shí)給系統(tǒng)的復(fù)習(xí)了一下的同時(shí),同時(shí)也發(fā)現(xiàn)了自己的太多不足,對(duì)JAVA2語(yǔ)言整體知識(shí)構(gòu)架不夠熟悉,不能靈活地運(yùn)用所學(xué)的知識(shí)點(diǎn)。自己的編程方式也不是太標(biāo)準(zhǔn),經(jīng)常出現(xiàn)代碼寫(xiě)錯(cuò)而調(diào)試很久的低級(jí)錯(cuò)誤情況出現(xiàn)。</p><p> 通過(guò)這次課程設(shè)計(jì),我明白了編寫(xiě)程序,不僅要求對(duì)課本知識(shí)有較深刻的了
95、解,同時(shí)要求程序設(shè)計(jì)者有較強(qiáng)的思維和動(dòng)手能力。還要熟悉常用的編程技巧和編程思想,不能只關(guān)心程序的運(yùn)行結(jié)果,更要注重程序代碼的結(jié)構(gòu),編程者更要有嚴(yán)謹(jǐn)?shù)貞B(tài)度。還有通過(guò)設(shè)計(jì)過(guò)程中大量地查閱網(wǎng)絡(luò)文章,對(duì)一些關(guān)鍵知識(shí)點(diǎn)逐個(gè)地了解并解決相關(guān)問(wèn)題。所以網(wǎng)絡(luò)這個(gè)強(qiáng)大的工具,確實(shí)是我們學(xué)習(xí)之中可以借助的一個(gè)很好的幫手。網(wǎng)絡(luò)是我們學(xué)習(xí)的最好的老師之一。有問(wèn)題,問(wèn)網(wǎng)絡(luò),是一個(gè)很好的習(xí)慣。</p><p><b> 7. 參
96、考資料:</b></p><p> [1] 葉核亞.《JAVA2程序設(shè)計(jì)實(shí)用教程(第2版)》,北京:電子工業(yè)出版社,2008.4.</p><p> 8. 致謝:本論文是在指導(dǎo)老師zz的悉心指導(dǎo)下完成的。這次畢業(yè)設(shè)計(jì)能夠順利的完成,要感謝很多人無(wú)私的幫助。</p><p> 首先是zz老師,在技術(shù)上給了我很大的幫助和啟發(fā),他在實(shí)驗(yàn)課上的講解讓我對(duì)j
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告--java日歷設(shè)計(jì)
- java課程設(shè)計(jì)--日歷
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告俄羅斯方塊
- java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告---俄羅斯方塊
- java課程設(shè)計(jì)簡(jiǎn)單日歷
- 文本編輯器_java課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- java課程設(shè)計(jì)報(bào)告---計(jì)算器應(yīng)用程序?qū)嶒?yàn)報(bào)告
- java課程設(shè)計(jì)--日歷記事本
- sopc課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- mfc課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- javaweb課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- java課程設(shè)計(jì)日歷記事本
- wed課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- plc課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- eda課程設(shè)計(jì)--eda課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
- 展示設(shè)計(jì)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論