Java记事本文档格式.docx
《Java记事本文档格式.docx》由会员分享,可在线阅读,更多相关《Java记事本文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
JButtongongJu1,gongJu2,gongJu3,gongJu4;
/*JMenuBarcaiDanTiao;
JMenucaiDan1;
JMenuItemcaiDanXianga;
*/
BorderLayoutborderLayout;
JFileChooserjFileChooser;
FileduFile=null,xieFile=null;
InputStreamReaderdu=null;
OutputStreamWriterxie=null;
publicOperateJPanel()
{
//手型光标
CursormyCursor=newCursorMouse().CursorMouse();
borderLayout=newBorderLayout();
this.setLayout(borderLayout);
/*
caiDanTiao=newJMenuBar();
//菜单条
caiDan1=newJMenu("
文件"
);
caiDanXianga=newJMenuItem("
打开"
newImageIcon("
images/open.png"
));
caiDan1.add(caiDanXianga);
caiDanTiao.add(caiDan1);
//this.add(caiDanTiao);
*/
gongJuTiao=newJToolBar();
//工具条
gongJu1=newJButton("
gongJu1.setCursor(myCursor);
gongJu1.addActionListener(this);
gongJu2=newJButton("
保存"
images/save.png"
gongJu2.setCursor(myCursor);
gongJu2.addActionListener(this);
gongJu3=newJButton("
返回"
images/return.png"
gongJu3.setCursor(myCursor);
gongJu3.addActionListener(this);
*gongJu4=newJButton("
列表"
images/list.png"
gongJu4.setCursor(myCursor);
gongJu4.addActionListener(this);
gongJuTiao.add(gongJu1);
gongJuTiao.add(gongJu2);
gongJuTiao.add(gongJu3);
//gongJuTiao.add(gongJu4);
this.add(gongJuTiao,borderLayout.NORTH);
myPad=newJTextArea(24,60);
//25,60
myPad.setLineWrap(true);
//设置自动换行
myPad.addKeyListener(this);
//当文字发生改变的时候,保存按钮又可以使用了
jScrollPane=newJScrollPane(myPad);
//用滚动条将文本区域圈起来
this.add(jScrollPane,borderLayout.SOUTH);
myColor=newColor(244,214,164);
//设置背景颜色
this.setBackground(myColor);
}
publicvoidactionPerformed(ActionEvente)
//TODOAuto-generatedmethodstub
if(e.getSource()==gongJu1)
{
myPad.setText(null);
jFileChooser=newJFileChooser();
//jFileChooser.setDialogType(JFileChooser.OPEN_DIALOG);
//jFileChooser.showDialog(null,"
打开文件"
jFileChooser.showOpenDialog(null);
try
{
if(jFileChooser.getSelectedFile()!
=null)
{
duFile=jFileChooser.getSelectedFile();
du=newInputStreamReader(newFileInputStream(duFile),"
UTF-8"
//解决乱码
//FileReaderdu=newFileReader(duFile);
//建立通道
/*
RandomAccessFiledu=newRandomAccessFile(duFile,"
rw"
longfilePoint=0;
longfileLength=du.length();
while(filePoint<
fileLength)
{
Stringstring=du.readLine();
myPad.append(string+"
\r\n"
filePoint=du.getFilePointer();
}
du.close();
*/
BufferedReaderduHuan=newBufferedReader(du);
//为通道套上一根管子
FileduFile=jFileChooser.getCurrentDirectory();
//得到文件路径
StringfileName=jFileChooser.getName();
FileReaderdu=newFileReader(duFile+"
\\"
+fileName);
Stringstring=null;
//读一行
while((string=duHuan.readLine())!
}
}catch(Exceptione2)
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}
}
if(e.getSource()==gongJu2)
if(duFile!
//已经打开了文件,所以是保存
try
xie=newOutputStreamWriter(newFileOutputStream(duFile),"
//StringxieString;
xie.write(myPad.getText());
//System.out.println(myPad.getText());
xie.close();
}catch(Exceptione4)
//TODO:
handleexception
e4.printStackTrace();
gongJu2.setEnabled(false);
//保存之后按钮变灰色
else
//没有打开文件,所以是另存为
jFileChooser=newJFileChooser();
JTextFieldtext;
text=getTextField(jFileChooser);
//text.setText("
你想默认的文件名"
//设定默认文件名
//jFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
//只能打开目录
jFileChooser.showSaveDialog(null);
//弹出保存对话框
//System.out.println(text.getText());
if(text.getText().equals("
"
else
//新建一个文件,并且可以自定义文件名字和存放路径
xieFile=newFile(jFileChooser.getCurrentDirectory(),text.getText());
xie=newOutputStreamWriter(newFileOutputStream(xieFile),"
//StringxieString;
xie.write(myPad.getText());
//System.out.println(jFileChooser.getName());
//将日记名和日记路径插入数据库
/*
diaryName=text.getText();
diaryDirectory=jFileChooser.getCurrentDirectory().toString();
Connectionct=newConnectDatabase().getConn();
Statementsm=ct.createStatement();
ResultSetrs=sm.executeQuery("
selectcount(*)fromdiarylist"
if(null!
=rs)
{
while(rs.next())
{
riJiNum=rs.getInt
(1);
}//要有这个while语句,否则会出现异常
}//得到总记录数
riJiNum++;
sm.executeUpdate("
insertintodiarylistvalues('
+riJiNum+"
'
'
+diaryName+"
+diaryDirectory+"
)"
*
**/
xie.close();
}catch(Exceptione3)
//TODOAuto-generatedcatchblock
e3.printStackTrace();
if(e.getSource()==gongJu3)
this.setVisible(false);
*if(e.getSource()==gongJu4)
this.setVisible(false);
flag=true;
//表示要跳向列表面板,从首页面调用即实现跳转。
@Override
publicvoidkeyTyped(KeyEvente){
//gongJu2.setEnabled(true);
publicvoidkeyPressed(KeyEvente)
//System.out.println("
触发了按下"
gongJu2.setEnabled(true);
publicvoidkeyReleased(KeyEvente){
//这个方法设定默认的文件名,至今我都还不太明白。
嗯,今天好像又有点明白了。
publicJTextFieldgetTextField(Containerc)
JTextFieldtextField=null;
for(inti=0;
i<
c.getComponentCount();
i++)
Componentcnt=c.getComponent(i);
if(cntinstanceofJTextField)
return(JTextField)cnt;
if(cntinstanceofContainer)
textField=getTextField((Container)cnt);
if(textField!
=null)
returntextField;
//得到文件名和后缀名
publicStringgetDiaryName(JTextAreajta)
this.diaryName=jta.getText();
returndiaryName;
//得到文件的路径
publicStringgetDiaryDirectory(JFileChooserjfc)
this.diaryDirectory=jfc.getCurrentDirectory().toString();
//将路径从文件类型转换为String类型
returndiaryDirectory;
}
2.ShengMing.java:
importjava.awt.Color;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.border.Border;
publicclassShengMingextendsJPanelimplementsActionListener
JLabeljLabel;
JButtonfanHui;
publicShengMing()
this.setLayout(null);
jLabel=newJLabel("
作者:
洋葱"
jLabel.setForeground(Color.cyan);
jLabel.setBounds(300,0,600,300);
fanHui=newJButton("
返回首页"
fanHui.addActionListener(this);
fanHui.setBounds(700,430,90,30);
this.add(jLabel);
this.add(fanHui);
this.setVisible(true);
if(e.getSource()==fanHui)
com.yangcong.main包:
1.MyPad.java
packagecom.yangcong.main;
importcom.yangcong.extra.*;
importjavax.tools.Tool;
publicclassMyPad
publicstaticvoidmain(Stringargs[])
MainViewmainView=newMainView();
classMainViewextendsJFrameimplementsActionListener
OperateJPaneloperateJPanel;
DiaryListdiaryList;
ShengMingshengMing;
JPanelzhuJPanel;
CardLayoutcardLayout;
intwidth,height;
JButtonxinJianButton,chaKanButton,shengMingButton;
ImageIconimg1,img2,img3;
publicMainView()
zhuJPanel=newJPanel();
//diaryList=newDiaryList();
//这是日记列表类,记录下日志。
operateJPanel=newOperateJPanel();
//另起一个类,作为操作记事本的类
shengMing=newShengMing();
//声明类,声明软件相关的版权等。
//设置这个容器为CardLayout布局,第一面是首页,第二面是操作页面。
cardLayout=newCardLayout();
zhuJPanel.setLayout(cardLayout);
width=Toolkit.getDefaultToolkit().getScreenSize().width;
height=Toolkit.getDefaultToolkit().getScreenSize().height;
backTool=newBackTool(Toolkit.getDefaultToolkit().getImage("
images/diary.gif"
backTool.setLayout(null);
this.setSize(800,500);
this.setLocation((width-800)/2,(height-500)/2);
img1=newImageIcon("
images/1.png"
//图片作为按钮
xinJianButton=newJButton(img1);
backTool.add(xinJianButton);
xinJianButton.setBounds(200,235,90,30);
xinJianButton.setCursor(myCursor);
//应用手型光标
xinJianButton.addActionListener(this);
//监听按钮
/*img2=newImageIcon("
images/2.png"
chaKanButton=newJButton(img2);
backTool.add(chaKanButton);
chaKanButton.setBounds(200,280,90,30);
chaKanButton.setCursor(myCursor);
chaKanButton.addA