资源描述
. .
Java语言程序设计B报告
题目:编写一个记事本程序
一.要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。
二. 课程设计思路。
设计两个类,一个记事本的类〔JSB〕,具有程序的要求和功能再创立一个课设的主类〔KESHE),在主类中创立一个JSB类的对象,就可以直接在编译器中运行程序。
在主界面中设计一个Frame容器,并在其中参加一个下拉 菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。
三. 课程设计实现功能构造图。
3.1“文件〞菜单。
开场
“文件〞菜单
新建
另存为
File=null
翻开
用JFileChooser()选择所有翻开文件路径
用unfold()读取所选的文件内容到记事本
保存
用sava()保存文件
用JFileChooser()选择文件另存的路径
用sava()保存文件
退出或关闭
文件是否修改
用sava()保存文件
Y
完毕
N
图3.2 “文件〞菜单操作流程图
用close()关闭文件
3.2“编辑〞菜单。
开场
“编辑〞菜单
剪切
全选
设置修改标签,text.cut()
复制
用
text.copy()实现
粘贴
设置修改标签,
text.paste()
删除
设置修改标签,
text.replaceRange("", start, end);
查找
替换
用FindAndReplace{}方法实现
用text.selectAll()实现
退出或关闭
文件是否修改
用sava()保存文件并
完毕
用close()关闭文件
Y
N
图3.3 “编辑〞菜单操作流程图
四.记事本实现功能代码实现。
4.1.界面设计。
主要代码:
f=new Frame(s);
p1=new TextArea("");
f.setSize(400,600);
f.setBackground(Color.white);
f.setVisible(true);
menubar=new MenuBar();
menu1=new Menu("文件");
menu2=new Menu("编辑");
item1=new MenuItem("新建");
item2=new MenuItem("翻开");
item3=new MenuItem("保存");
item4=new MenuItem("另存为");
item5=new MenuItem("退出");
item6=new MenuItem("全选");
item7=new MenuItem("复制");
item8=new MenuItem("剪切");
item9=new MenuItem("粘贴");
menu1.add(item1);
menu1.add(item2);
menu1.add(item4);
menu1.add(item5);
menu2.add(item6);
menu2.add(item7);
menu2.add(item8);
menu2.add(item9);
menubar.add(menu1);
menubar.add(menu2);
f.setMenuBar(menubar);
程序代码实现截图:
4.2功能代码详细设计。
4.2.1新建文件。
if (e.getSource()==item1)
{
if (i==0&&(ss.length()!=0))
{
bc();
}
else
p1.setText("");i=0;f.setTitle("文件对话框");
}
4.2.2翻开文件。
if (e.getSource()==item2)
{
fd=new FileDialog(f,"翻开文件",0);
fd.setVisible(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.setText(view);
br.close();
fr.close();
}
catch(IOException expIn)
{}
}
4.2.3复制文件。
if (e.getSource()==item7)
{
try{
String str=p1.getSelectedText();
if(str.length()!=0)
{
strt=str;
}
}catch(Exception ex)
{ }
}
4.2.4粘贴文件。
if (e.getSource()==item9〕
{
if(strt.length()>0)
{
p1.insert(strt,p1.getCaretPosition());
}
4.2.5退出记事本。
if (e.getSource()==item5)
{
if (i==0 &&(ss.length()!=0))
{
bc();
}
else
{
System.exit(0);
}
}
五. JAVA课程设计个人总结。
这个学期我们学习了JAVA语言,这对于我们来说是一门十分陌生的编程语言,在学习的过程中,我感到了这门语言的学习有一定的困难,与C、C++语言相比需要克制的困难也相对多一些。在学习了JAVA课程后,我们通过这次的JAVA课程设计复习和掌握我们学习的JAVA语言知识,并且在课程设计的过程中稳固和运用相关的知识,提高自己的JAVA编程能力。
通过这次的JAVA课程设计,我更好地了解了JAVA的编程方法,并且在遇到困难的时候,能主动请教身边的同学,不仅仅培养了我的编程能力,在与同学的交流中我也更好的培养了与其他人的交流能力,相信通过这次的JAVA课程设计,我更好地学习了JAVA,相信我自己在以后的学习中能继续学习JAVA,在更好地丰富自己JAVA知识的同时,积极提高自己的JAVA编程能力,在以后能更好地掌握JAVA语言。
JAVA语言课程设计程序源代码:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class FileInAndOut
{
public static String fileInput(String fName)
{
String strRead="";
try {
FileReader fr=new FileReader(fName);
BufferedReader br=new BufferedReader(fr);
String aline=new String();
while((aline=br.readLine())!=null)
strRead=strRead+aline;
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return strRead;
}
public static void fileWrite(String fName,String temp)
{
try {
FileWriter fw=new FileWriter(fName);
BufferedWriter bw=new BufferedWriter(fw);
bw.write(temp);
bw.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class MyNote implements ActionListener
{
private Frame f;
private TextArea ta;
private MenuBar mb;
private String strme[]={"文件","编辑","帮助"};
private String strmi[][]={{"新建","翻开","保存","退出"},{"剪切","拷贝","粘贴","查找"},
private String fileDir,fileName,temp="";
private Menu me[];
private MenuItem mi[][];
private Label l1,l2;
private TextField t1,t2;
private Button b1,b2,b3;
private Dialog diaFind,diaAbout;
public MyNote(){
f=new Frame("我的记事本");
ta=new TextArea();
f.add(ta);
mb=new MenuBar();
f.setMenuBar(mb);
mi=new MenuItem[strme.length][];
me=new Menu[strme.length];
for(int i=0;i<strme.length;i++){
me[i]=new Menu(strme[i]);
mb.add(me[i]);
mi[i]=new MenuItem[strmi[i].length];
for(int j=0;j<strmi[i].length;j++){
mi[i][j]=new MenuItem(strmi[i][j]);
me[i].add(mi[i][j]);
mi[i][j].addActionListener(this);
}
}
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
f.setSize(400,300);
f.show();
diaFind=new Dialog(f,"查找",true);
diaFind.setLayout(new FlowLayout());
diaFind.setSize(260,120);
l1=new Label("查找内容");
l2=new Label("替换为");
t1=new TextField(20);
t2=new TextField(20);
b1=new Button("下一个");
b2=new Button("替换");
b3=new Button("取消");
diaFind.add(l1);
diaFind.add(t1);
diaFind.add(l2);
diaFind.add(t2);
diaFind.add(b1);
diaFind.add(b2);
diaFind.add(b3);
diaFind.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
diaFind.dispose();
}
});
}
public void actionPerformed(ActionEvent e){
String cmd=e.getActionmand();
if(cmd.equals("新建")){
fileDir="";
fileName="";
ta.setText("");
f.setTitle("我的记事本");
}
if(cmd.equals("翻开")){
FileDialog diaOpen=new FileDialog(f,"",FileDialog.LOAD);
diaOpen.show();
fileDir=diaOpen.getDirectory();
fileName=diaOpen.getFile();
if(!fileName.equals("")){
ta.setText(FileInAndOut.fileInput(fileDir+fileName));
f.setTitle(fileName+"我的记事本");
}
}
if(cmd.equals("保存")){
FileDialog diaSave=new FileDialog(f,"",FileDialog.SAVE);
diaSave.show();
fileDir=diaSave.getDirectory();
fileName=diaSave.getFile();
if(!fileName.equals("")){
FileInAndOut.fileWrite(fileDir+fileName,ta.getText());
f.setTitle(fileName+"我的记事本");
}
}
if(cmd.equals("退出")){
System.exit(0);
}
if(cmd.equals("剪切")){
int x,y;
x=ta.getSelectionStart();
y=ta.getSelectionEnd();
temp=ta.getSelectedText();
ta.replaceRange("",x,y);
}
if(cmd.equals("拷贝")){
temp=ta.getSelectedText();
}
if(cmd.equals("粘贴")){
ta.replaceRange(temp,ta.getSelectionStart(),ta.getSelectionEnd());
}
if(cmd.equals("查找")){
diaFind.show();
}
if(cmd.equals("关于")){
}
}
public static void main(String[] args) {
new MyNote();
}
}
. .word..
展开阅读全文