JAVA程序设计题 文本编辑器设计资料Word文档格式.docx
- 文档编号:3274067
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:12
- 大小:16.79KB
JAVA程序设计题 文本编辑器设计资料Word文档格式.docx
《JAVA程序设计题 文本编辑器设计资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计题 文本编辑器设计资料Word文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
}
publicNotice_B08010332(){
super("
新建文本文件"
);
setUpUIComponent();
setUpEventListener();
setVisible(true);
this.showForm();
privatevoidshowForm(){
//侦听窗口关闭操作
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
dispose();
System.exit(0);
});
privatevoidsetUpUIComponent(){
setSize(640,480);
//菜单栏
JMenuBarmenuBar=newJMenuBar();
//设置「文件」菜单
JMenufileMenu=newJMenu("
文件"
menuOpen=newJMenuItem("
打开"
//快捷键设置
menuOpen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
InputEvent.CTRL_MASK));
menuSave=newJMenuItem("
保存"
menuSave.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
menuSaveAs=newJMenuItem("
另存为"
menuClose=newJMenuItem("
关闭"
menuClose.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
fileMenu.add(menuOpen);
fileMenu.addSeparator();
//分隔线
fileMenu.add(menuSave);
fileMenu.add(menuSaveAs);
fileMenu.add(menuClose);
//设置「编辑」菜单
JMenueditMenu=newJMenu("
编辑"
menuCut=newJMenuItem("
剪切"
menuCut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
menuCopy=newJMenuItem("
复制"
menuCopy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
menuPaste=newJMenuItem("
粘贴"
menuPaste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
editMenu.add(menuCut);
editMenu.add(menuCopy);
editMenu.add(menuPaste);
menuBar.add(fileMenu);
menuBar.add(editMenu);
setJMenuBar(menuBar);
//文字编辑区域
textArea=newJTextArea();
textArea.setFont(newFont("
宋体"
Font.PLAIN,16));
textArea.setLineWrap(true);
JScrollPanepanel=newJScrollPane(textArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
ContainercontentPane=getContentPane();
contentPane.add(panel,BorderLayout.CENTER);
//状态栏
stateBar=newJLabel("
未修改"
stateBar.setHorizontalAlignment(SwingConstants.LEFT);
stateBar.setBorder(BorderFactory.createEtchedBorder());
contentPane.add(stateBar,BorderLayout.SOUTH);
popUpMenu=editMenu.getPopupMenu();
privatevoidsetUpEventListener(){
//按下窗口关闭钮事件处理
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
closeFile();
}
});
//菜单-打开
menuOpen.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
openFile();
//菜单-保存
menuSave.addActionListener(newActionListener(){
saveFile();
//菜单-另存为
menuSaveAs.addActionListener(newActionListener(){
saveFileAs();
//菜单-关闭文件
menuClose.addActionListener(newActionListener(){
//菜单-剪切
menuCut.addActionListener(newActionListener(){
cut();
//菜单-复制
menuCopy.addActionListener(newActionListener(){
copy();
//菜单-粘贴
menuPaste.addActionListener(newActionListener(){
paste();
//编辑区键盘事件
textArea.addKeyListener(newKeyAdapter(){
publicvoidkeyTyped(KeyEvente){
processTextArea();
//编辑区鼠标事件
textArea.addMouseListener(newMouseAdapter(){
publicvoidmouseReleased(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON3)
popUpMenu.show(editMenu,e.getX(),e.getY());
publicvoidmouseClicked(MouseEvente){
if(e.getButton()==MouseEvent.BUTTON1)
popUpMenu.setVisible(false);
privatevoidopenFile(){
if(isCurrentFileSaved()){//文件是否为保存状态
open();
//打开
}else{
//显示对话框
intoption=JOptionPane.showConfirmDialog(null,"
文件已修改,是否保存?
"
"
保存文件?
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE,null);
switch(option){
//确认文件保存
caseJOptionPane.YES_OPTION:
//保存文件
break;
//放弃文件保存
caseJOptionPane.NO_OPTION:
open();
}
privatebooleanisCurrentFileSaved(){
if(stateBar.getText().equals("
)){
returntrue;
returnfalse;
privatevoidopen(){
JFileChooserchooser=newJFileChooser();
chooser.showOpenDialog(this);
Filefile=chooser.getSelectedFile();
currFile=file;
Stringstr="
;
try{
FileInputStreamfileinput=newFileInputStream(file.getAbsolutePath());
intx=fileinput.available();
byteb[]=newbyte[x];
fileinput.read(b);
str=newString(b);
}catch(Exceptione){
e.printStackTrace();
if(file!
=null)
this.textArea.setText(str);
privatevoidsaveFile(){
Stringstr=this.textArea.getText();
if(currFile!
=null&
&
!
currFile.equals("
)){
try{
FileWriterout=newFileWriter(currFile);
out.write(str);
out.close();
}catch(Exceptione){
e.printStackTrace();
}else{
saveFileAs();
stateBar.setText("
已保存"
privatevoidsaveFileAs(){
Stringstr=this.textArea.getText();
if(currFile!
try{
stateBar.setText("
privatevoidcloseFile(){
//是否已保存文件
if(isCurrentFileSaved()){
//释放窗口资源,而后关闭程序
dispose();
dispose();
privatevoidcut(){
textArea.cut();
已修改"
popUpMenu.setVisible(false);
privatevoidcopy(){
textArea.copy();
privatevoidpaste(){
textArea.paste();
privatevoidprocessTextArea(){
privateJMenuItemmenuOpen;
privateJMenuItemmenuSave;
privateJMenuItemmenuSaveAs;
privateJMenuItemmenuClose;
privateJMenueditMenu;
privateJMenuItemmenuCut;
privateJMenuItemmenuCopy;
privateJMenuItemmenuPaste;
privateJTextAreatextArea;
privateJLabelstateBar;
privateJPopupMenupopUpMenu;
privateFilecurrFile;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA程序设计题 文本编辑器设计资料 JAVA 程序设计 文本 编辑器 设计 资料