Java課程設(shè)計 記事本 課程設(shè)計
《Java課程設(shè)計 記事本 課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《Java課程設(shè)計 記事本 課程設(shè)計(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 課程設(shè)計說明 課程名稱: Java課程設(shè)計 設(shè)計題目: 記事本 專 業(yè): 班級: 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 科技學(xué)院教務(wù)部 制 年 月 日 一、系統(tǒng)設(shè)計目的: 1)設(shè)計一個簡單的Windows記事本,可以實現(xiàn)以下功能: 1:文件的新建,打開,保存;
2、 2:對文件的編輯,如全選,復(fù)制,剪切,粘貼; 3、工具,進行大小寫的轉(zhuǎn)換 4:執(zhí)行完操作后,能夠順利關(guān)閉記事本; 2)通過這次設(shè)計,可以幫助學(xué)生: 1:提高對Java語言設(shè)計的掌握能力; 2:理論聯(lián)系實際,進一步提高學(xué)生的軟件開發(fā)技術(shù); 3:培養(yǎng)學(xué)生分析、解決問題的能力。 二、系統(tǒng)實現(xiàn)思路: 設(shè)計兩個類,一個mynotepad類,具有程序的要求和功能再創(chuàng)建一個Notepad主類,在主類中創(chuàng)建一個mynotepad類的對象,就可以直接在編譯器中運行程序。 1:界面設(shè)計 在主界面中設(shè)計一個iFrame容器,并在其中加入一個下拉菜單和一個文本域控件。 2:功能
3、設(shè)計 在下拉菜單中加入子菜單并進行監(jiān)聽,分別實現(xiàn)對文件的操作功能。點擊不同菜單項時,進行不同的操作。 3:代碼設(shè)計 編寫每個控件的相關(guān)代碼,并進行調(diào)試。 三、系統(tǒng)詳細設(shè)計 1:界面設(shè)計 創(chuàng)建一個下拉菜單和文本域,在文本域中顯示編輯的文件信息。 主要代碼: JMenu[] menus=new JMenu[]{ new JMenu("文件"), new JMenu("編輯"), new JMenu("工具"), new JMenu("關(guān)于") }; JMenuItem optionofmenu[][]=new JMenu
4、Item[][]{{ new JMenuItem("新建"), new JMenuItem("打開"), new JMenuItem("保存"), new JMenuItem("退出") }, { new JMenuItem("復(fù)制"), new JMenuItem("剪切"), new JMenuItem("粘貼"), new JMenuItem("文字顏色"), new JMenuItem("背景顏色") },
5、
{
new JMenuItem("大寫轉(zhuǎn)小寫"),
new JMenuItem("小寫轉(zhuǎn)大寫"),
},
{
new JMenuItem("關(guān)于")
}
};
void initMenu(){
for(int i=0;i 6、 for(int j=0;j 7、(){ //事件
public void actionPerformed(ActionEvent e){
String name = e.getActionCommand();
JMenuItem MI=(JMenuItem)e.getSource();
if("新建".equals(name)){
content.setText("");
file=null;
}else if("打開".equals(name))
{
if(file !=null 8、)openfile.setSelectedFile(file);
int returnVal=openfile.showOpenDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=openfile.getSelectedFile();
unfold();
}
9、 }else if("保存".equals(name))
{
if(file!=null) openfile.setSelectedFile(file);
int returnVal=openfile.showSaveDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
10、 file=openfile.getSelectedFile();
saving();
}
}else if("退出".equals(name))
{
mynotepad f=new mynotepad();
int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionP 11、ane.YES_NO_OPTION);
if(s==JOptionPane.YES_OPTION)
System.exit(0);
}
else if("剪切".equals(name))
{
content.cut();
}
else if("復(fù)制".equals(name))
12、 {
content.copy();
}
else if("粘貼".equals(name))
{
content.paste();
}else if("文字顏色".equals(name)){
color=JColorChooser.showDialog(mynotepad.this,"",color);
13、 content.setForeground(color);
}else if("背景顏色".equals(name)){
color=JColorChooser.showDialog(mynotepad.this,"",color);
content.setBackground(color);
}
else if("大寫轉(zhuǎn)小寫".equals(name)){
String st 14、r=content.getText();
String str1=str.toLowerCase();
content.setText(str1);
}
else if("小寫轉(zhuǎn)大寫".equals(name)){
String str=content.getText();
String str1=str.toUpperCase();
content.setText(str1); 15、
}
else if("關(guān)于".equals(name)){
JOptionPane.showMessageDialog(null,"程序制作:鄭澤波&魯裕浩&歐陽國勝&曾成成","關(guān)于",JOptionPane.INFORMATION_MESSAGE);
}
四、系統(tǒng)調(diào)試運行
1:界面調(diào)試
確定主窗體,設(shè)置主窗體的屬性,對窗體進行布局,加入所需控件并對控件進行初始化。在完成加入菜單控件后,不能缺少this.setJMenuBar(menu); 語句,將menu設(shè)為主窗體的菜單條,否則會看 16、不到菜單欄。
如圖:
2:功能調(diào)試
打開功能:
保存功能:
五、課程設(shè)計心得
經(jīng)過一個星期的我的記事本的課程設(shè)計,我在向華萍老師的指導(dǎo)下,順利完成該課程設(shè)計。通過該課程設(shè)計,收獲頗多。
首先,讓我加深了對Java語言的理論知識的理解;
其次,讓我更加熟練的掌握了Java語言的設(shè)計能力并且有了實踐經(jīng)驗;
再次,在設(shè)計過程中,學(xué)到了老師沒有在課堂上沒有教授的知識;
最后,加強了我對Java語言的學(xué)習(xí)興趣和好感。
六、參考文獻:
[1] 耿詳義,張躍平. Java 2 實用教程. 北京:清華大學(xué)出版社,2004.2
17、[2] 張利國.Java實用教程案例.北京:清華大學(xué)出版社,2003.10
[3] 周曉聰,等.面向?qū)ο蟪绦蛟O(shè)計與Java語言.北京:機械工業(yè)出版社,2004.3
[4] 李尊朝.Java語言程序設(shè)計.北京:中國鐵道出版社,2004.2
[5] (美)Philip Heller.Complate Java 2 Certification Study Guide Fourth Edition(Java 2 證學(xué)習(xí)指南) (第四版 英文版). 北京:電子工業(yè)出版社,2004.1
七、附 錄
程序源代碼:
import java.awt.event.*;
import ja 18、va.awt.*;
import java.io.*;
import java.lang.String;
class jsb implements ActionListener
{
Dialog bb;
String strt;
int i;
FileDialog fd;
File file;
public Frame f;
public TextArea p1;
public MenuBar menubar;
public Menu menu1,menu2,menu3;
public MenuItem item1,item2,item3 19、,item4,item5,item6,item7,item8,item9,item10;
jsb(String s)
{ i=0;
f=new Frame(s);
p1=new TextArea("");
f.setSize(500,500);
f.setBackground(Color.white);
f.setVisible(true);
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("編輯");
menu3=new Menu("幫助");
item1=new Men 20、uItem("新建");
item2=new MenuItem("打開");
item3=new MenuItem("保存");
item4=new MenuItem("另存為");
item5=new MenuItem("退出");
item6=new MenuItem("全選");
item7=new MenuItem("復(fù)制");
item8=new MenuItem("剪切");
item9=new MenuItem("粘貼");
item10=new MenuItem("關(guān)于");
f.addWindowListener(new WindowA 21、dapter()
{
public void windowClosing(WindowEvent e)
{f.setVisible(false);System.exit(0);}
});
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu1.add(item5);
menu2.add(item6);
menu2.add(item7);
menu2.add(item8);
menu2.add(item9);
menu3.add(item10 22、);
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
f.setMenuBar(menubar);
item1.addActionListener(this);
item2.addActionListener(this);
item3.addActionListener(this);
item4.addActionListener(this);
item5.addActionListener(this);
item6.addActionListener(this);
item7. 23、addActionListener(this);
item8.addActionListener(this);
item9.addActionListener(this);
item10.addActionListener(this);
f.setLayout(new GridLayout(1,1));
f.add(p1);f.pack();
}
public void actionPerformed(ActionEvent e)
{
String ss;
ss=p1.getText().trim();
if (e.getSource()==item 24、5)
{
if (i==0 &&(ss.length()!=0))
{
bc();
}
else
{
System.exit(0);
}
}
if (e.getSource()==item1)
{
if (i==0&&(ss.length()!=0))
{
bc();
}
else
{
p1.setText("");i=0;f.setTitle("文件對話框");
}
}
if (e.getSource()==item2)
{
fd=new FileDialog(f,"打開文件",0);
fd.setVi 25、sible(true);
try{
file=new File(fd.getDirectory(),fd.getFile());
f.setTitle(fd.getFile()+"文件對話框");
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
String line = null;
String view = "";
while((line=br.readLine())!=null)
{
view += line+"\n";
}
p1.se 26、tText(view);
br.close();
fr.close();
}
catch(IOException expIn)
{}
}
if (e.getSource()==item3)
{
if (i==0)
{
bc();
}
else
{
try{
file=new File(fd.getDirectory(),fd.getFile());
f.setTitle(fd.getFile()+"--記事本");
FileWriter fw=new FileWriter(file);
BufferedWriter b 27、w=new BufferedWriter(fw);
String s =p1.getText();
s = s.replaceAll("\n","\r\n");
bw.write(s);
bw.flush();
bw.close();
fw.close();
i=1;
}
catch(IOException expOut){i=0;}
}
}
if (e.getSource()==item4)
{
bc();
}
if (e.getSource()==item10)
{
bb=new Dialog(f,"關(guān)于");
La 28、bel l1=new Label("本記事本的完成感謝老師和同學(xué)的幫助!!");
bb.add(l1);
bb.setSize(250,150);
bb.setBackground(Color.white);
bb.show();
bb.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{bb.setVisible(false);bb.dispose();}
});
}
if (e.getSource()==item6)
{
p1 29、.setSelectionStart(0);
p1.setSelectionEnd(p1.getText().length());
}
if (e.getSource()==item7)
{
try{
String str=p1.getSelectedText();
if(str.length()!=0)
{
strt=str;
}
}catch(Exception ex)
{
}
}
if (e.getSource()==item8)
{
try{
String str=p1.getSelectedText();
30、
if(str.length()!=0)
{
p1.replaceRange("",p1.getSelectionStart(),p1.getSelectionEnd());
}
}
catch(Exception ex)
{
}
}
if (e.getSource()==item9)
{
if(strt.length()>0)
{
p1.insert(strt,p1.getCaretPosition());
}
}
}
public void bc()
{
fd=new FileDialog(f,"保存文件",1);
31、fd.setVisible(true);
try{
file=new File(fd.getDirectory(),fd.getFile());
f.setTitle(fd.getFile()+"--記事本");
FileWriter fw=new FileWriter(file);
BufferedWriter bw=new BufferedWriter(fw);
String s =p1.getText();
s = s.replaceAll("\n","\r\n");
bw.write(s);
bw.flush();
bw.close();
fw.close();
i=1;
}
catch(IOException expOut){}
}
}
public class keshe
{ public static void main(String args[])
{jsb dd=new jsb("我的記事本");}
}
第 19 頁
- 溫馨提示:
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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第7課時圖形的位置練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)2圖形與幾何第1課時圖形的認識與測量1平面圖形的認識練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習(xí)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊2百分數(shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)下冊1負數(shù)第1課時負數(shù)的初步認識作業(yè)課件新人教版
- 2023年六年級數(shù)學(xué)上冊期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學(xué)上冊易錯清單十二課件新人教版
- 標(biāo)準(zhǔn)工時講義
- 2021年一年級語文上冊第六單元知識要點習(xí)題課件新人教版
- 2022春一年級語文下冊課文5識字測評習(xí)題課件新人教版
- 2023年六年級數(shù)學(xué)下冊6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時數(shù)學(xué)思考1練習(xí)課件新人教版