




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
計算機學院信管07級JAVA程序設計報告JAVA語言課程設計報告題目:記事本的制作設計者:劉興鋼專業班級:信管07—班學號:310709030218指導教師:申艷梅2010年12月24日河南理工大學計算機學院目錄1、系統需求分析 32.系統總體設計 33系統詳細設計 54軟件測試 135系統總結 136系統設計心得體會 137參考文獻 131、系統需求分析1.1系統名稱:Window記事本1.2系統介紹:開發一個window記事本,主要有一個主界面及以下功能:1:文件的新建,打開,保存,打印,另存等;2:對文件的編輯,如全選,復制,剪切,粘貼等;3:對文件的格式操作,如自動換行,字體等;4:幫助,包括幫助主題,關于。1.3開發環境Eclipse2.系統總體設計2.1系統功能結構圖開始開始文件編輯格式幫助輸入文字2.2系統文件結構圖開始開始文件新建打開保存另存為頁面設置打印退出2.3系統編輯結構圖開始開始編輯撤銷剪切復制粘貼查找替換全選時間2.4系統格式、幫助結構圖開始開始格式幫助自動換行設置字體幫助主題關于3系統詳細設計3.1.主界面主界面主要是用于對選擇相應的功能進行相應的功能,主界面主要包括文件,編輯,格式,幫助四個下拉菜單功能。重要代碼:=1\*GB3①創建界面,安裝各種監聽器publicNotebook(){setTitle("記事本--劉興鋼");con=getContentPane();text=newJTextArea();JSPane=newJScrollPane(text);createMenu();createPopupMenu();setJMenuBar(mainMenuBar);con.add(JSPane,BorderLayout.CENTER);text.setComponentPopupMenu(popMenu);text.getDocument().addDocumentListener(this);text.addKeyListener(newhandleKey());text.addMouseListener(newhandleMouse());setSize(400,300);setVisible(true);=2\*GB3②菜單代碼publicvoidcreateMenu(){//創建JMenuBarmainMenuBar=newJMenuBar();//創建四個JMenufileMenu=newJMenu("文件");editMenu=newJMenu("編輯");formatMenu=newJMenu("格式");helpMenu=newJMenu("幫助");3.2.字體設計界面主要代碼importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;publicclassfontDialogextendsJDialogimplementsActionListener,ListSelectionListener{publicstaticfinalintCancle=0;publicstaticfinalintOK=1;publicstaticfinalString[]style={"正常","斜體","粗體","粗斜體"};publicstaticfinalString[]size={"8","9","10","11","12","14","16","18","20","22","24","26","28","36","48","72"};privateFontuserFont=null;privateintuserSelect=Cancle;privateJFrameparent=null;privateContainercon;privateJScrollPanenameSPane,styleSPane,sizeSPane;privateJPanelpanel[];privateJLabelnameLbl,styleLbl,sizeLbl;privateJTextFieldnameText,styleText,sizeText;privateJListnameList,styleList,sizeList;privateJButtonOKBtn,cancleBtn;publicfontDialog(){this(null);}publicfontDialog(JFrameowner){super(owner,true);parent=owner;setTitle("字體");con=getContentPane();BoxLayoutbox=newBoxLayout(con,BoxLayout.Y_AXIS);con.setLayout(box);panel=newJPanel[4];for(inti=0;i<3;i++){panel[i]=newJPanel();panel[i].setLayout(newGridLayout(1,3));}panel[3]=newJPanel();panel[3].setLayout(newFlowLayout());nameLbl=newJLabel("字體");styleLbl=newJLabel("字形");sizeLbl=newJLabel("大小");panel[0].add(nameLbl);panel[0].add(styleLbl);panel[0].add(sizeLbl);nameText=newJTextField("宋體");nameText.setColumns(5);nameText.setEditable(false);styleText=newJTextField("正常");styleText.setColumns(5);styleText.setEditable(false);sizeText=newJTextField("12");sizeText.setColumns(5);sizeText.setEditable(false);panel[1].add(nameText);panel[1].add(styleText);panel[1].add(sizeText);GraphicsEnvironmenteq=GraphicsEnvironment.getLocalGraphicsEnvironment();String[]availableFonts=eq.getAvailableFontFamilyNames();nameList=newJList(availableFonts);nameList.addListSelectionListener(this);nameSPane=newJScrollPane(nameList);styleList=newJList(style);styleList.addListSelectionListener(this);styleSPane=newJScrollPane(styleList);sizeList=newJList(size);sizeList.addListSelectionListener(this);sizeSPane=newJScrollPane(sizeList);panel[2].add(nameSPane);panel[2].add(styleSPane);panel[2].add(sizeSPane);OKBtn=newJButton("確定");OKBtn.addActionListener(this);cancleBtn=newJButton("取消");cancleBtn.addActionListener(this);panel[3].add(OKBtn);panel[3].add(cancleBtn);for(inti=0;i<4;i++)con.add(panel[i]);}publicintshowFontDialog(){setSize(300,300);intx,y;if(parent!=null){x=parent.getX()+30;y=parent.getY()+30;}else{x=150;y=100;}setLocation(newPoint(x,y));setVisible(true);returnuserSelect;}publicFontgetFont(){returnuserFont;}publicvoidactionPerformed(ActionEvente){intstyleIndex=Font.PLAIN,fontSize;if(e.getSource()==OKBtn){if(styleText.getText().equals("正常"))styleIndex=Font.PLAIN;if(styleText.getText().equals("斜體"))styleIndex=Font.ITALIC;if(styleText.getText().equals("粗體"))styleIndex=Font.BOLD;if(styleText.getText().equals("粗斜體"))styleIndex=Font.BOLD|Font.ITALIC;fontSize=Integer.parseInt(sizeText.getText());userFont=newFont(nameText.getText(),styleIndex,fontSize);userSelect=OK;setVisible(false);}else{userSelect=Cancle;setVisible(false);}}publicvoidvalueChanged(ListSelectionEvente){if(e.getSource()==nameList)nameText.setText((String)nameList.getSelectedValue());if(e.getSource()==styleList)styleText.setText((String)styleList.getSelectedValue());if(e.getSource()==sizeList)sizeText.setText((String)sizeList.getSelectedValue());}}3.3.保存界面代碼intdoSave(){FileOutputStreamfout;bytecontent[];intflag;if(!haveName){flag=doSaveAs();}elseif(changed){try{fout=newFileOutputStream(file);content=text.getText().getBytes();fout.write(content);fout.close();changed=false;flag=1;}catch(FileNotFoundExceptione){JOptionPane.showMessageDialog(this,"指定的文件名稱或屬性有問題!");flag=0;}catch(IOExceptione){JOptionPane.showMessageDialog(this,"無法寫文件,請檢查文件是否被鎖定");flag=0;}}else{flag=1;}returnflag;}3.4.打印設計界面代碼如下:voiddoPrint(){try{PrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();DocFlavorflavor=DocFlavor.BYTE_ARRAY.AUTOSENSE;PrintServiceprintService[]=PrintServiceLookup.lookupPrintServices(flavor,pras);PrintServicedefaultService=PrintServiceLookup.lookupDefaultPrintService();PrintServiceservice=null;service=ServiceUI.printDialog(null,100,100,printService,defaultService,flavor,pras);if(service!=null){DocPrintJobjob=service.createPrintJob();DocAttributeSetdas=newHashDocAttributeSet();Docdoc=newSimpleDoc(text.getText().getBytes(),flavor,das);job.print(doc,pras);//進行文件的打印}}catch(Exceptione){JOptionPane.showMessageDialog(this,"打印任務無法完成");}}3.5.查找設計界面代碼如下:publicfindDialog(JFrameowner,JTextAreaJtext){ super(owner,false); start=0; text=Jtext; panel1=newJPanel(); panel1.setLayout(newFlowLayout()); panel2=newJPanel(); panel2.setLayout(newFlowLayout()); label1=newJLabel("查找內容"); findEdit=newJTextField(12); OKBtn=newJButton("查找下一個"); OKBtn.addActionListener(this); panel1.add(label1); panel1.add(findEdit); panel1.add(OKBtn); checkBox=newJCheckBox("區分大小寫"); checkBox.setSelected(true); upBtn=newJRadioButton("向上"); downBtn=newJRadioButton("向下",true); dirBtnGroup=newButtonGroup(); dirBtnGroup.add(upBtn); dirBtnGroup.add(downBtn); CancleBtn=newJButton("取消"); CancleBtn.addActionListener(this); panel2.add(checkBox); panel2.add(upBtn); panel2.add(downBtn); panel2.add(CancleBtn); con=getContentPane(); con.setLayout(newFlowLayout()); con.add(panel1); con.add(panel2); setTitle("查找"); setSize(300,120); setVisible(true); }4軟件測試軟件測試成功5系統總結總體來說,本次項目在規定期間順利完成,記事本能夠完成文件的編輯、保存、剪切,復制、查詢、自動換行,字體設計和打印和頁面設計等的相應功能。6系統設計心得體會經過一個星期的我的記事本的課程設計,我在老師及同學的指導幫助下,順利完成該課程設計。通過該課程設計,收獲頗多。首先,讓我加深了對Java語言的理論知識的理解;其次,讓我更加熟練的掌握了Java語言的設計能力并且有了實踐經驗;再次,在設計過程中,學到了老師沒有在課堂上沒有教授的知識;最后,加強了我對Java語言的學習興趣和好感。7參考文獻[1]耿詳義,張躍平.Java2實用教程.北京:清華大學出版社,2004.2[2]張利國.Java實用教程案例.北京:清華大學出版社,2003.10[3]周曉聰,等.面向對象程序設計與Java語言.北京:機械工業出版社,2004.3[4]李尊朝.Java語言程序設計.北京:中國鐵道出版社,2004.2[5](美)PhilipHeller.ComplateJava2CertificationStudyGuideFourthEdition(Java2證學習指南)(第四版英文版).北京:電子工業出版社,2004.1附錄:程序清單importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.io.*;importjavax.swing.event.*;importjavax.print.*;importjavax.print.attribute.*;importjava.util.*;importjava.text.*;publicclassNotebookextendsJFrameimplementsActionListener,DocumentListener{Containercon;JScrollPaneJSPane;JTextAreatext;JMenuBarmainMenuBar;JMenufileMenu,editMenu,formatMenu,helpMenu;JMenuItemnewItem,openItem,saveItem,saveasItem,pageItem,printItem,exitItem;JMenuItemundoItem,cutItem,copyItem,pasteItem,findItem,replaceItem,selectallItem,dateItem;JCheckBoxMenuItemwrapItem;JMenuItemfontItem;JMenuItemhelpItem,aboutItem;JPopupMenupopMenu;fontDialogmyFontDialog=null;booleanchanged=false;booleanhaveName=false;Filefile=null;//主程序入口publicstaticvoidmain(String[]args){newNotebook();}//創建界面、安裝各種監聽器、publicNotebook(){setTitle("記事本--劉興鋼");con=getContentPane();text=newJTextArea();JSPane=newJScrollPane(text);createMenu();createPopupMenu();setJMenuBar(mainMenuBar);con.add(JSPane,BorderLayout.CENTER);text.setComponentPopupMenu(popMenu);text.getDocument().addDocumentListener(this);text.addKeyListener(newhandleKey());text.addMouseListener(newhandleMouse());setSize(400,300);setVisible(true);}//創建主菜單publicvoidcreateMenu(){//創建JMenuBarmainMenuBar=newJMenuBar();//創建四個JMenufileMenu=newJMenu("文件");editMenu=newJMenu("編輯");formatMenu=newJMenu("格式");helpMenu=newJMenu("幫助");//創建JMenuItem并添加到對應的JMenu中mainMenuBar.add(fileMenu);newItem=newJMenuItem("新建");openItem=newJMenuItem("打開..");saveItem=newJMenuItem("保存..");saveasItem=newJMenuItem("另存為..");pageItem=newJMenuItem("頁面設置..");printItem=newJMenuItem("打印..");exitItem=newJMenuItem("退出");fileMenu.add(newItem);fileMenu.add(openItem);fileMenu.add(saveItem);fileMenu.add(saveasItem);fileMenu.addSeparator();fileMenu.add(pageItem);fileMenu.add(printItem);fileMenu.addSeparator();fileMenu.add(exitItem);mainMenuBar.add(editMenu);undoItem=newJMenuItem("撤消");cutItem=newJMenuItem("剪切");copyItem=newJMenuItem("復制");pasteItem=newJMenuItem("粘貼");findItem=newJMenuItem("查找..");replaceItem=newJMenuItem("替換..");selectallItem=newJMenuItem("全選");dateItem=newJMenuItem("時間/日期");editMenu.add(undoItem);editMenu.addSeparator();editMenu.add(cutItem);editMenu.add(copyItem);editMenu.add(pasteItem);editMenu.addSeparator();editMenu.add(findItem);editMenu.add(replaceItem);editMenu.addSeparator();editMenu.add(selectallItem);editMenu.add(dateItem);mainMenuBar.add(formatMenu);wrapItem=newJCheckBoxMenuItem("自動換行");fontItem=newJMenuItem("設置字體..");formatMenu.add(wrapItem);formatMenu.add(fontItem);mainMenuBar.add(helpMenu);helpItem=newJMenuItem("幫助主題");aboutItem=newJMenuItem("關于..");helpMenu.add(helpItem);helpMenu.add(aboutItem);exitItem.addActionListener(this);saveItem.addActionListener(this);saveasItem.addActionListener(this);newItem.addActionListener(this);printItem.addActionListener(this);openItem.addActionListener(this);cutItem.addActionListener(this);copyItem.addActionListener(this);pasteItem.addActionListener(this);selectallItem.addActionListener(this);dateItem.addActionListener(this);wrapItem.addActionListener(this);findItem.addActionListener(this);fontItem.addActionListener(this);}//創建彈出式菜單publicvoidcreatePopupMenu(){popMenu=newJPopupMenu();popMenu.add("撤消");popMenu.addSeparator();popMenu.add("剪切");popMenu.add("復制");popMenu.add("粘貼");popMenu.addSeparator();popMenu.add("全選");}publicvoidactionPerformed(ActionEvente){Objectobj;obj=e.getSource();if(obj==exitItem)doExit();elseif(obj==saveItem)doSave();elseif(obj==saveasItem)doSaveAs();elseif(obj==newItem)doNewFile();elseif(obj==printItem)doPrint();elseif(obj==openItem)doOpen();elseif(obj==cutItem)doCut();elseif(obj==copyItem)doCopy();elseif(obj==pasteItem)doPaste();elseif(obj==selectallItem)doSelectAll();elseif(obj==dateItem)doDateTime();elseif(obj==wrapItem)doWrap();elseif(obj==findItem)doFind();elseif(obj==fontItem)doChangeFont();elseif(obj==aboutItem)doabout();}//當用戶按下窗口的“關閉”時,會自動調用此方法protectedvoidprocessWindowEvent(WindowEvente){if(e.getID()==WindowEvent.WINDOW_CLOSING)doExit();}//監聽文本內容的改變事件publicvoidchangedUpdate(DocumentEvente){//不需要動作}publicvoidinsertUpdate(DocumentEvente){changed=true;}publicvoidremoveUpdate(DocumentEvente){changed=true;}//監聽鼠標事件classhandleMouseextendsMouseAdapter{publicvoidmouseReleased(MouseEvente){chkText();}}//監聽鍵盤事件classhandleKeyextendsKeyAdapter{publicvoidkeyPressed(KeyEvente){chkText();}}//根據用戶選擇文本的情況,修改菜單的狀態voidchkText(){if(text.getSelectedText()==null){cutItem.setEnabled(false);copyItem.setEnabled(false);}else{cutItem.setEnabled(true);copyItem.setEnabled(true);}}//程序退出時的代碼voiddoExit(){intselect;if(!changed)System.exit(0);else{select=JOptionPane.showConfirmDialog(this,"文件修改后尚未存盤,要保存嗎?");switch(select){caseJOptionPane.YES_OPTION:select=doSave();if(select==1)System.exit(0);break;caseJOptionPane.NO_OPTION:System.exit(0);break;caseJOptionPane.CANCEL_OPTION:break;}}}//保存用戶編輯的文件,保存成功返回1,否則返回0intdoSave(){FileOutputStreamfout;bytecontent[];intflag;if(!haveName){flag=doSaveAs();}elseif(changed){try{fout=newFileOutputStream(file);content=text.getText().getBytes();fout.write(content);fout.close();changed=false;flag=1;}catch(FileNotFoundExceptione){JOptionPane.showMessageDialog(this,"指定的文件名稱或屬性有問題!");flag=0;}catch(IOExceptione){JOptionPane.showMessageDialog(this,"無法寫文件,請檢查文件是否被鎖定");flag=0;}}else{flag=1;}returnflag;}//用"另存為"對話框保存文件。保存成功返回1,否則返回0intdoSaveAs(){FileOutputStreamfout;bytecontent[];intflag=0;Filetmpfile=null;ExampleFileFilterfilter=newExampleFileFilter();JFileChooserchooser;filter.addExtension("txt");filter.setDescription("文本文件");if(file!=null)chooser=newJFileChooser(file.getPath());elsechooser=newJFileChooser();chooser.setFileFilter(filter);flag=chooser.showSaveDialog(this);if(flag==JFileChooser.APPROVE_OPTION){tmpfile=chooser.getSelectedFile();if(tmpfile.exists()){if(JOptionPane.showConfirmDialog(this,"文件已經存在,是否覆蓋?","警告",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){flag=1;}else{flag=0;}}else{flag=1;}}else{flag=0;}if(flag==1){//用戶已經確定要以指定名稱保存文件try{fout=newFileOutputStream(tmpfile);content=text.getText().getBytes();fout.write(content);fout.close();flag=1;}catch(FileNotFoundExceptione){JOptionPane.showMessageDialog(this,"指定的文件名稱或屬性有問題!");flag=0;}catch(IOExceptione){JOptionPane.showMessageDialog(this,"無法寫文件,請檢查文件是否被鎖定");flag=0;}}if(flag==1){//文件保存成功,修改相關變量changed=false;haveName=true;file=tmpfile;this.setTitle("記事本--"+file.getName());}returnflag;}//新建一個文件voiddoNewFile(){intselect,flag;if(changed){select=JOptionPane.showConfirmDialog(this,"文件修改后尚未存盤,要保存嗎?");switch(select){caseJOptionPane.YES_OPTION:flag=doSave();break;caseJOptionPane.NO_OPTION:flag=1;break;default:flag=0;break;}}else{flag=1;}if(flag==1){changed=false;haveName=false;setTitle("記事本--未命名");text.setText(null);}}//調用打印對話框,給用戶打印文檔voiddoPrint(){try{PrintRequestAttributeSetpras=newHashPrintRequestAttributeSet();DocFlavorflavor=DocFlavor.BYTE_ARRAY.AUTOSENSE;PrintServiceprintService[]=PrintServiceLookup.lookupPrintServices(flavor,pras);PrintServicedefaultService=PrintServiceLookup.lookupDefaultPrintService();PrintServiceservice=null;service=ServiceUI.printDialog(null,100,100,printService,defaultService,flavor,pras);if(service!=null){DocPrintJobjob=service.createPrintJob();DocAttributeSetdas=newHashDocAttributeSet();Docdoc=newSimpleDoc(text.getText().getBytes(),flavor,das);job.print(doc,pras);//進行文件的打印}}catch(Exceptione){JOptionPane.showMessageDialog(this,"打印任務無法完成");}}//打開一個已經存在的文件voiddoOpen(){intselect,flag;Filetmpfile=null;ExampleFileFilterfilter;JFileChooserchooser;FileInputStreamfin;bytebuf[];if(changed){select=JOptionPane.showConfirmDialog(this,"文件修改后尚未存盤,要保存嗎?");switch(select){caseJOptionPane.YES_OPTION:flag=doSave();break;caseJOptionPane.NO_OPTION:flag=1;break;default:flag=0;break;}}else{flag=1;}if(flag==1){changed=false;filter=newExampleFileFilter();filter.addExtension("txt");filter.setDescription("文本文件");if(file!=null)chooser=newJFileChooser(file.getPath());elsechooser=newJFileChooser();chooser.setFileFilter(filter);select=chooser.showOpenDialog(this);if(select==JFileChooser.APPROVE_OPTION){tmpfile=chooser.getSelectedFile();try{fin=newFileInputStream(tmpfile);buf=newbyte[(int)tmpfile.length()];fin.read(buf);fin.close();text.setText(newString(buf));changed=false;haveName=true;file=tmpfile;setTitle("記事本--"+file.getName());}catch(FileNotFoundExceptione){JOptionPane.showMessageDialog(this,"指定的文件名稱或屬性有問題!");}catch(IOExceptione){JOptionPane.showMessageDialog(this,"無法讀文件,請檢查文件是否被鎖定");}}}}//將用戶選擇的文本剪切到剪貼板voiddoCut(){text.cut();}//將用戶選擇的文本復制到剪貼板voiddoCopy(){text.copy();}//將剪貼板中的內容復制到文本區voiddoPaste(){text.paste();}//全選voiddoSelectAll(){text.selectAll();}//插入當前日期和時間voiddoDateTime(){SimpleDateFormatsdf=newSimpleDateFormat("HH:mmyyyy-MM-dd");text.append(sdf.format(newDate()));}//自動換行voiddoWrap(){if(wrapItem.getState()){text.setLineWrap(true);}else{text.setLineWrap(false);}}//顯示查找對話框voiddoFind(){newfindDialog(this,text);}//設置字體voiddoChangeFont(){if(myFontDialog==null)myFontDialog=newfontDialog(this);if(myFontDialog.showFontDialog()==fontDialog.OK)text.setFont(myFontDialog.getFont());}}//類結束//本類實現了一個表格用的模型,取代默認的模型importjavax.swing.table.AbstractTableModel;finalclassMyTableModelextendsAbstractTableModel{privateObject[][]date;//存儲表格中的數據privateString[]tableName;//存儲表頭//這個構造方法,由調用者提供數據和表頭publicMyTableModel(Object[][]date,String[]tableName){this.date=date;this.tableName=tableName;}//這個構造方法,只需要提供數據,表頭依次顯示A、B……publicMyTableModel(Object[][]date){this.date=date;tableName=newString[date[0].length];char[]tch={'A'};for(inti=0;i<tableName.length;++i){tableName[i]=newString(tch);tch[0]++;}}//下面三個方法必須要提供publicintgetColumnCount(){returndate[0].length;}publicintgetRowCount(){returndate.length;}publicStringgetColumnName(intcol){returntableName[col];}publicObjectgetValueAt(introw,intcol){returndate[row][col];}//覆蓋父類的方法,改變數據顯示的形式publicClassgetColumnClass(intc){returndate[0][c].getClass();}}importjava.awt.event.*;importjavax.swing.*;importjavax.swing.event.*;importjava.awt.*;publicclassfontDialogextendsJDialogimplementsActionListener,ListSelectionListener{publicstaticfinalintCancle=0;publicstaticfinalintOK=1;publicstaticfinalString[]style={"正常","斜體","粗體","粗斜體"};publicstaticfinalString[]size={"8","9","10","11","12","14","16","18","20","22","24","26","28","36","48","72"};privateFontuserFont=null;privateintuserSelect=Cancle;privateJFrameparent=null;privateContainercon;privateJScrollPanenameSPane,styleSPane,sizeSPane;privateJPanelpanel[];privateJLabelnameLbl,styleLbl,sizeLbl;privateJTextFieldnameText,styleText,sizeText;privateJListnameList,styleList,sizeList;privateJButtonOKBtn,cancleBtn;publicfontDialog(){this(null);}publicfontDialog(JFrameowner){super(owner,true);parent=owner;setTitle("字體");con=getContentPane();BoxLayoutbox=newBoxLayout(con,BoxLayout.Y_AXIS);con.setLayout(box);panel=newJPanel[4];for(inti=0;i<3;i++){panel[i]=newJPanel();panel[i].setLayout(newGridLayout(1,3));}panel[3]=newJPanel();panel[3].setLayout(newFlowLayout());nameLbl=newJLabel("字體");styleLbl=newJLabel("字形");sizeLbl=newJLabel("大小");panel[0].add(nameLbl);panel[0].add(styleLbl);panel[0].add(sizeLbl);nameText=newJTextField("宋體");nameText.setColumns(5);nameText.setEditable(false);styleText=newJTextField("正常");styleText.setColumns(5);styleText.setEditable(false);sizeText=newJTextField("12");sizeText.setColumns(5);sizeText.setEditable(false);panel[1].add(nameText);panel[1].add(styleText);panel[1].add(sizeText);GraphicsEnvironmenteq=GraphicsEnvironment.getLocalGraphicsEnvironment();String[]availableFonts=eq.getAvailableFontFamilyNames();nameList=newJList(availableFonts);nameList.addListSelectionListener(this);nameSPane=newJScrollPane(nameList);styleList=newJList(style);styleList.addListSelectionListener(this);styleSPane=newJScrollPane(styleList);sizeList=newJList(size);sizeList.addListSelectionListener(this);sizeSPane=newJScrollPane(sizeList);panel[2].add(nameSPane);panel[2].add(styleSPane);panel[2].add(sizeSPane);OKBtn=newJButton("確定");OKBtn.addActionListener(this);cancleBtn=newJButton("取消");cancleBtn.addActionListener(this);panel[3].add(OKBtn);panel[3].add(cancleBtn);for(inti=0;i<4;i++)con.add(panel[i]);}publicintshowFontDialog(){setSize(300,300);intx,y;if(parent!=null){x=parent.getX()+30;y=parent.getY()+30;}else{x=150;y=100;}setLocation(newPoint(x,y));setVisible(true);returnuserSelect;}publicFontgetFont(){returnuserFont;}publicvoidactionPerformed(ActionEvente){intstyleIndex=Font.PLAIN,fontSize;if(e.getSource()==OKBtn){if(styleText.getText().equals("正常"))styleIndex=Font.PLAIN;if(styleText.getText().equals("斜體"))styleIndex=Font.ITALIC;if(styleText.getText().equals("粗體"))styleIndex=Font.BOLD;if(styleText.getText().equals("粗斜體"))styleIndex=Font.BOLD|Font.ITALIC;fontSize=Integer.parseInt(sizeText.getText());userFont=newFont(nameText.getText(),styleIndex,fontSize);userSelect=OK;setVisible(false);}else{userSelect=Cancle;setVisible(false);}}publicvoidvalueChanged(ListSelectionEvente){if(e.getSource()==nameList)nameText.setText((String)nameList.getSelectedValue());if(e.getSource()==styleList)styleText.setText((String)styleList.getSelectedValue());if(e.getSource()==sizeList)sizeText.setText((String)sizeList.getSelectedValue());}}importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassfindDialogextendsJDialogimplementsActionListener{ Containercon; JPanelpanel1,panel2; JTextAreatext; JLabellabel1; JTextFieldfindEdit; JCheckBoxcheckBox; JRadioButtonupBtn,downBtn; ButtonGroupdirBtnGroup; JButtonOKBtn,CancleBtn; intstart; publicfindDialog(JFrameowner,JTextAreaJtext){ super(owner,false); start=0; text=Jtext; panel1=newJPanel(); panel1.setLayout(newFlowLayout()); panel2=newJPanel(); panel2.setLayout(ne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軟考網絡管理員考試復習指導試題及答案
- 2025年網絡管理員考試心得試題及答案
- 第二次月考提升卷(Unit 4、Unit 5)(含答案)-2024-2025學年人教精通版英語六年級下冊
- 學習云原生技術考試考題及答案解析
- 2025合同范本 租房協議書
- 2025法學概論考試的常見問題及試題及答案
- 學期重點項目與計劃推進
- 保安人員心理素質提升的實踐方案計劃
- 2025帶薪休假合同「下載」
- 信息處理技術員商務溝通題及答案
- 3.6.3關門車課件講解
- 《高速公路旅游區標志設置規范》
- 貴陽2024年貴州貴陽貴安事業單位招聘599人筆試歷年典型考題及考點附答案解析
- 成都市2022級(2025屆)高中畢業班摸底測試(零診)化學試卷(含答案)
- 老年期發育(人體發育學)
- 修理廠員工安全合同協議書
- 術后吻合口瘺
- 陜西延安通和電業有限責任公司招聘筆試真題2021
- HYT 075-2005 海洋信息分類與代碼(正式版)
- 建筑用砂石料采購 投標方案(技術方案)
- 融于教學的形成性評價讀書分享
評論
0/150
提交評論