用Java程序编写一个记事本程序的设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Java程序编写一个记事本程序的
设计报告
学习中心(点):泾阳学习中心
专业:计算机科学与技术
层次:专升本
**:***
批次: 112
目录
一、设计分析 (1)
二、程序结构 (1)
三、各模块的功能及程序说明 (2)
1、类设计 (2)
2、主要功能代码实现 (4)
四、源程序 (9)
五、操作方法 (20)
六、试验结果 (20)
七、设计体会 (22)
用Java程序编写一个记事本程序的设计报告
一、设计要求
1.用图形用户界面实现。
2.能实现编辑、保存、另存为、查找替换等功能。
二、程序结构
流程图:
图1基本流程图
本Java文本编辑器功能设计如下:
图2基本功能图
三、各模块的功能及程序说明
1、类设计
(1)类MiniText ,包括initTextPane方法初始化面板,initMenu()方法初始化菜单,initAboutDialog()方法初始化关于对话框,initToolBar()方法初始化工具栏,initRightKey()方法初始化右键设置,等方法。类成员如下:
(2)类Loading (实现登陆)类成员如下:
(3)类runtime (实现时间同步)
类成员如下:
(4)类MainFunction (包含主函数)
类成员如下:
2、主要功能代码实现
(1)登陆界面:
class Loading extends JWindow implements Runnable {
Thread dluThread=null;
private JProgressBar progress;
public Loading() {
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));//设置光标为等待状态JPanel dlu = new JPanel(new BorderLayout());
URL url = getClass().getResource("/images/loading.jpg");
if(url != null){
dlu.add(new JButton(new ImageIcon(url)), BorderLayout.CENTER);
}
progress = new JProgressBar(1,100);
progress.setStringPainted(true);
progress.setBorderPainted(true);
progress.setBackground(Color.white);
progress.setForeground(Color.green);
dlu.add(progress,BorderLayout.SOUTH);
setContentPane(dlu); //设置窗口属性为登陆面板属性
Dimension screen = getToolkit().getScreenSize();
pack(); //显示登陆界面
setLocation(screen.width/4,screen.height/4); //设置登陆界面始终在屏幕中间显示
}
public void start(){
// this.toFront();
dluThread=new Thread(this);
dluThread.start(); }
public void run(){
show();
try {
for (int i=0;i<100;i++){
Thread.sleep(100);
progress.setValue(progress.getValue() + 1);
progress.setString("欢迎进入迷你编辑,请稍后... ... "+i+"%"); } }
catch (Exception ex) {
ex.printStackTrace(); }
dispose();//关闭登陆界面} }
(2).时间标签:
class runtime extends JButton implements Runnable{
Thread datetime=null;
public runtime(){}
public void run(){
for(;;){
//java.util.Date timeer=new java.util.Date();
Calendar now=Calendar.getInstance();
int year1=now.get(Calendar.YEAR);
int month1=now.get(Calendar.MONTH);
int day1=now.get(Calendar.DAY_OF_MONTH);
int hour1=now.get(Calendar.HOUR);
int minute1=now.get(Calendar.MINUTE);
int sec=now.get(Calendar.SECOND);
setText(year1+"年"+month1+"月"+day1+"日"+hour1+":"+minute1+":"+sec);
//System.out.println(now.get(Calendar.DAY_OF_MONTH)-60);
try{
Thread.currentThread().sleep(1000);
}catch(InterruptedException e){} } }}
(3)右键的实现:
void initRightKey (){
filepopup=new JPopupMenu();
uundo=new JMenuItem("撤消(U)");
uundo.setMnemonic('U');
ccut=new JMenuItem("剪切(T)");
ccut.setMnemonic('T');
ccopy=new JMenuItem("复制(C)");
ccopy.setMnemonic('C');
ppaste=new JMenuItem("粘贴(V)");
ppaste.setMnemonic('V');
ddelete=new JMenuItem("删除(D)");
ddelete.setMnemonic('D');
sselectall=new JMenuItem("全选(A)");
sselectall.setMnemonic('A');
filepopup.add(uundo);
filepopup.addSeparator();
filepopup.add(ccut);
filepopup.add(ccopy);
filepopup.add(ppaste);
filepopup.add(ddelete);
filepopup.addSeparator();
filepopup.add(sselectall);
uundo.addActionListener(action);
ccut.addActionListener(action);