JMenuBar 菜单栏
JMenu 菜单项
JMenuItem 菜单项弹出来的子菜单项
string为对话框的标题,Int代表执行的是打卡或是保存
filedialog.getDirectory()
得到地址
filedialog.getFile()
得到文件名
JMenu 菜单项
JMenuItem 菜单项弹出来的子菜单项
FileDialog 用来访问本地文件的对话框 (frame,string,int)
以下为简易修改版记事本
import java.awt.EventQueue;
public class Textbook {
private JFrame frame;
JMenu mnFile = new JMenu("文件");
JMenuBar menuBar = new JMenuBar();
JMenuItem mntmOpen = new JMenuItem("打开");
JMenuItem mntmSaveas = new JMenuItem("另存为");
JMenu mnEdit = new JMenu("编辑");
JMenu mnFormat = new JMenu("格式");
JMenu mnView = new JMenu("查看");
JMenu mnHelp = new JMenu("帮助");
JMenuItem mntmSave = new JMenuItem("保存");
JMenuItem mntmQuit = new JMenuItem("退出");
JTextArea textArea = new JTextArea();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Textbook window = new Textbook();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Textbook() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame("IdeaPad");
frame.setBounds(300,200,(int)Toolkit.getDefaultToolkit().getScreenSize().width/2,(int)Toolkit.getDefaultToolkit().getScreenSize().height/2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//菜单栏
frame.setJMenuBar(menuBar);
//文件菜单
menuBar.add(mnFile);
mnFile.add(mntmOpen);
mnFile.add(mntmSave);
mnFile.add(mntmSaveas);
mnFile.add(mntmQuit);
//其他菜单
menuBar.add(mnEdit);
menuBar.add(mnFormat);
menuBar.add(mnView);
menuBar.add(mnHelp);
frame.getContentPane().add(textArea, BorderLayout.CENTER);
addEvent();
}
private void addEvent() {
// TODO Auto-generated method stub
//
//打开文件**********************************************************
//
mntmOpen.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
FileDialog fd=new FileDialog(frame,"打开",FileDialog.LOAD);
fd.setVisible(true);
String strFile=fd.getDirectory()+fd.getFile();
if(strFile!=null){
try{
BufferedReader br=new BufferedReader (new FileReader(strFile));
String b="";
textArea.removeAll();
while((b=br.readLine())!=null){
textArea.append(b+"\n");
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
} //action over
});
//
//保存文件*************************************************
//
mntmSave.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
FileDialog fd=new FileDialog(frame,"保存",FileDialog.SAVE);
fd.setVisible(true);
String dirPath=fd.getDirectory();
String fileName=fd.getFile();
if(dirPath==null||fileName==null){
return;
}
try{
fileName+=".txt";
BufferedWriter bw=new BufferedWriter(new FileWriter(new File(dirPath,fileName)));
String text=textArea.getText();
bw.write(text);
bw.close();
}catch(Exception e){
e.printStackTrace();
}
}
});//action over
//
//退出按钮
//
mntmQuit.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
});
}
}
string为对话框的标题,Int代表执行的是打卡或是保存
filedialog.getDirectory()
得到地址
filedialog.getFile()
得到文件名
所以一个完整的地址是 地址加文件名