《JAVA》 参考如下图形,完成简单记事本的界面设计及事件响应。

 

package jAVA;

/*

 *   @author 

 */

/*

 * 1.参考如下图形,完成简单记事本的界面设计及事件响应。

 */

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.io.File;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPopupMenu;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JToolBar;

import javax.swing.KeyStroke;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import org.w3c.dom.events.MouseEvent;

import util.Common;

public class Main extends JFrame{

private Container pnlMain;

private JMenuBar   mbMain;

private JMenu mnuFile ,mnuHelp;

private JMenuItem mnuiNew,mnuiOpen,mnuiSave,mnuiSaveAs,mnuiExit;

private JMenuItem mnuiHelp,mnuiAbout;

private JToolBar tbMain;       //工具栏

private JButton btnNew,btnOpen,btnSave,btnSaveAs,btnHelp;

private JPopupMenu mnuPop;     //弹出菜单

private JMenuItem mnuiNewPop,mnuiOpenPop,mnuiSavePop,mnuiSaveAsPop;

private JScrollPane srlArea;   //滚动面板

private JTextArea txtArea;     //文本区

private boolean isEdited,isSaved;  //是否编辑,是否保存

private File file;

private JFileChooser FileChooser ;

public Main(){

isEdited=false;

isSaved=false;

file=null;

 initFrm();

 initMenu();

 initMenuFile();

 initMenuHelp();

 initToolBar();

 initCenter();

}

public  void initToolBar(){

tbMain=new JToolBar();

pnlMain.add(tbMain,BorderLayout.NORTH);

btnNew=makeButton("new","新建一个文件");

btnOpen=makeButton("open","打开一个文件");

btnSave=makeButton("save","保存文件");

btnSaveAs=makeButton("saveas","文件另存为");

btnHelp=makeButton("help","帮助");

tbMain.add(btnNew);

tbMain.add(btnOpen);

tbMain.add(btnSave);

tbMain.add(btnSaveAs);

tbMain.addSeparator();

tbMain.add(btnHelp);

 btnNew.addActionListener(new  ActionListener(){

 public void actionPerformed(ActionEvent e){

 fileNew(e);

 }

 });

 btnSave.addActionListener(new  ActionListener(){

 public void actionPerformed(ActionEvent e){

 fileSave(e);

 }

 });

}

public void initCenter(){

txtArea=new JTextArea();   //文本区

srlArea=new JScrollPane(txtArea);   //滚动面板

pnlMain.add(srlArea,BorderLayout.CENTER);

txtArea.getDocument().addDocumentListener(new DocumentListener(){

public void changedUpdate(DocumentEvent e) {

isEdited=true;

}

public void insertUpdate(DocumentEvent e) {

isEdited=true;

}

public void removeUpdate(DocumentEvent e) {

isEdited=true;

}

});

  txtArea.addMouseListener(new  MouseAdapter (){

 public void mouseClicked(MouseEvent e){

 }

  });

}

private JButton makeButton(String strImage, String txtToolTip) {

JButton tmp=new JButton(new ImageIcon(Common.getClassPath()+"icon/"+strImage+".jpg"));

tmp.setToolTipText(txtToolTip);   //提示

return tmp;

}

public void initMenuFile(){

mnuiNew=makeMenuItem("新 建(N)","new",'N',"control  N");

mnuiOpen=makeMenuItem("打 开(O)","open",'O',"control  O");

mnuiSave=makeMenuItem("保 存(S)","save",'S',"control  S");

mnuiSaveAs=makeMenuItem("另存为(A)","saveas",'A'," ");

mnuiExit=makeMenuItem("退 出(X)"," ",'E'," ");

 mnuFile.add(mnuiNew);  //在菜单中添加菜单项

 mnuFile.add(mnuiOpen);

 mnuFile.addSeparator();   //菜单分隔符(空菜单)

 mnuFile.add(mnuiSave);

 mnuFile.add(mnuiSaveAs);

 mnuFile.addSeparator();

 mnuFile.add(mnuiExit);  

 //弹出菜单

 mnuPop=new JPopupMenu();

 mnuiNewPop=makeMenuItem("新 建(N)","new",'N',"control  N");

 mnuiOpenPop=makeMenuItem("打 开(O)","open",'O',"control  O");

 mnuiSavePop=makeMenuItem("保 存(S)","save",'S',"control  S");

 mnuiSaveAsPop=makeMenuItem("另存为(A)","saveas",'A'," ");

 mnuPop.add(mnuiNewPop);

 mnuPop.add(mnuiOpenPop);

 mnuFile.addSeparator();

 mnuPop.add(mnuiSavePop);

 mnuPop.add(mnuiSaveAsPop);

 //事件

 mnuiNew.addActionListener(new  ActionListener(){

 public void actionPerformed(ActionEvent e){

 fileNew(e);

 }

});

 mnuiNewPop.addActionListener(new  ActionListener(){

 public void actionPerformed(ActionEvent e){

 fileNew(e);

 }

});

 mnuiSave.addActionListener(new  ActionListener(){

 public void actionPerformed(ActionEvent e){

 fileSave(e);

 }

});

 mnuiSavePop.addActionListener(new  ActionListener(){

 public void actionPerformed(ActionEvent e){

 fileSave(e);

 }

});

     }

private void fileNew(ActionEvent e) {

 if(isEdited && !isSaved ){  //编辑 而且未保存

 int ret=JOptionPane.showConfirmDialog(mnuiNew,"是否保存当前文件",

 "保存文件",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);

 if(ret==JOptionPane.YES_OPTION){

fileSave(e);

 } else if(ret==JOptionPane.CANCEL_OPTION){

   return;

 }else if(ret==JOptionPane.CLOSED_OPTION){

 return;

 }

 }  

 txtArea.setText("");

 isEdited=false;

 isSaved=false;

 file=null;

 }

    private void fileSave(ActionEvent e) {

//是否有对应的文件

     if(file==null){

     //给用户选择  保存的文件

     JFileChooser fc=new JFileChooser();

     int ret=fc.showSaveDialog(this);

     if(ret==JFileChooser.APPROVE_OPTION){   //保存动作

     file=fc.getSelectedFile();   //获得用户选择的文件

     }else{

     return;

     }

     }

     //保存

saveToFile(txtArea.getText(),file);  //把文档内容写入到文件 file中

 isEdited=false;

 isSaved=false;

 }

private void saveToFile(String text, File file2) {

JOptionPane.showMessageDialog(this,"["+file.getAbsolutePath() +

"]  正在保存中 ...");

}

public void initMenuHelp(){

mnuiHelp=makeMenuItem("帮助主题(H)","help",'H',"control H ");

mnuiAbout=makeMenuItem("关于记事本(A)","about",'A',"control A ");

 mnuHelp.add(mnuiHelp); //在菜单中添加菜单项

 mnuHelp.add(mnuiAbout);

}

//菜单

public void initMenu(){

mbMain=new JMenuBar();

this.setJMenuBar(mbMain);  //放在框架  (专门的方法)

mnuFile=new JMenu("文件(F)");

mnuHelp=new JMenu("帮助(H)");

mbMain.add(mnuFile);   //添加到菜单栏

mbMain.add(mnuHelp);

}

    public void  initFrm(){   //初始化框架

//1.标题

this.setTitle("迷你记事本");

//2.logo

Toolkit toolkit=Toolkit.getDefaultToolkit();

Image image=toolkit.getImage(Common.getClassPath()+"pic/about.jpg");

this.setIconImage(image);

//3.大小

this.setSize(800,680);

//4.居中

Dimension screenSize=toolkit.getScreenSize();

double x=(screenSize.getWidth()-this.getWidth())/2;

double y=(screenSize.getHeight()-this.getHeight())/2;

this.setLocation((int)x,(int)y);

//正常退出

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//主面板

 pnlMain=this.getContentPane();   //默认边界布局

}

    private JMenuItem makeMenuItem(String sName, String iconName,char X, String acce) {

 JMenuItem tmp;

 if(iconName.length()==0){

 tmp=new JMenuItem(sName);

 }else{

 String iconPath=Common.getClassPath()+"icon/"+iconName+".jpg";   //图片

tmp=new JMenuItem(sName,new ImageIcon(iconPath));

 }

 tmp.setMnemonic(X);       //热键

  if(acce.length()>0){

 tmp.setAccelerator(KeyStroke.getKeyStroke(acce));    //快捷键

 }

 return tmp;

}

public static void main(String[] args) {

  new Main().setVisible(true);

}

}

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java课程设计实训大作业:记事本+简易计算器+聊天系统+日历+中英查询 基础任务一:设计日历软件 根据如下图,综合运用GUI编程、事件处理、Calendar类应用等知识设计一款月历,要求能通过输入(或选择)年月的方式正确显示当前月份的所有日期。 基础任务二:设计中英查询软件 根据Java面向对象程序设计相关理论,及GUI编程、事件处理、数据库编程等技术,设计一个如下图所示的“中英文释义查询”程序。输入英文单词,查询数据库将对应的中文显示在下框中;输入中文,查询数据库将对应的英文单词显示在下框中。 提升任务三:设计简易记事本软件 1.使用Java图形界面组件设计记事本软件的界面,参考如图所示。 2.程序代码规范,逻辑正确,能够正常运行。 3.“文件”菜单,包括“新建”、“打开”、“保存”、“另存为”和“退出”等功能。 提升任务四:设计简易计算器软件 1.使用Java图形界面组件设计软件,界面如图所示。 2.软件能够满足基本的“加、减、乘、除”等运算要求。 3.程序代码清晰,语法规范,结构合理,逻辑正确。 进阶任务五:自选主题开发一个应用软件(如在线聊天系统,学籍管理系统等)下面给的软件界面只是参考,同学们可以根据自己的想法进行设计。 1.软件界面美观、功能完善软件,导航清晰,操作方便,使用菜单栏、工具栏、布局管理器、按钮、表格等多种Java图形界面组件。 2.程序代码清晰,语法规范,结构合理,逻辑正确。 3.功能完善,程序代码优化,执行效率高,具有较好可维护性和可扩展性。 4.软件功能设计具有一定的难度和创意。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值