java 另存为对话框_在java中创建一个保存/另存为对话框,保存新创建的文件或编辑的文件...

Java初学者:请帮忙解决这个问题,我的脑子已经死了。 我创建了一个java程序(在eclipse中)有3个菜单:FILE,EDIT,HELP 一旦文件被点击就显示4menuBar:'新建,打开,保存,另存为&退出。在java中创建一个保存/另存为对话框,保存新创建的文件或编辑的文件

在帮助菜单中有一个menuBar,上面写着“关于javaEdit”除了保存,另存为和“关于javaEdit”之外,我所有的菜单栏都可以工作我需要一些代码或者一个清晰的步骤说明,保存并保存为正常工作。

保存应该保存新创建的文件或编辑文件&终于我可以喜欢“关于JavaEdit显示一条消息,如‘谢谢你,这是Java的’一次点击。我也喜欢像

private void doSave(){code here}

private void doSaveAs(){

,因为我有那些项目中的if else if语句。

如何创建一个保存/另存为在Java牛逼对话框保存新创建的文件或编辑的文件?

下面是我的全部代码:

import java.awt.*;

import java.awt.event

import java.io.*;

public class JavaEdit extends Frame implements ActionListener {

String clipBoard;

String fileName;

TextArea text;

MenuItem newMI, openMI, saveMI, saveAsMI, exitMI;

MenuItem selectAllMI, cutMI, copyMI, deleteMI, pasteMI;

MenuItem aboutJavaEditMI;

/**

* Constructor

*/

public JavaEdit() {

super("JavaEdit"); // set frame title

setLayout(new BorderLayout()); // set layout

// create menu bar

MenuBar menubar = new MenuBar();

setMenuBar(menubar);

// create file menu

Menu fileMenu = new Menu("File");

menubar.add(fileMenu);

newMI = fileMenu.add(new MenuItem("New"));

newMI.addActionListener(this);

openMI = fileMenu.add(new MenuItem("Open"));

openMI.addActionListener(this);

fileMenu.addSeparator();

saveMI = fileMenu.add(new MenuItem("Save"));

saveAsMI = fileMenu.add(new MenuItem("Save As ..."));

fileMenu.addSeparator();

exitMI = fileMenu.add(new MenuItem("Exit"));

exitMI.addActionListener(this);

// create edit menu

Menu editMenu = new Menu("Edit");

menubar.add(editMenu);

selectAllMI = editMenu.add(new MenuItem("Select all"));

selectAllMI.addActionListener(this);

cutMI = editMenu.add(new MenuItem("Cut"));

cutMI.addActionListener(this);

copyMI = editMenu.add(new MenuItem("Copy"));

copyMI.addActionListener(this);

pasteMI = editMenu.add(new MenuItem("Paste"));

pasteMI.addActionListener(this);

deleteMI = editMenu.add(new MenuItem("Delete"));

deleteMI.addActionListener(this);

// create help menu

Menu helpMenu = new Menu("Help");

menubar.add(helpMenu);

aboutJavaEditMI = helpMenu.add(new MenuItem("About JavaEdit"));

aboutJavaEditMI.addActionListener(this);

// create text editing area

text = new TextArea();

add(text, BorderLayout.CENTER);

}

// implementing ActionListener

public void actionPerformed(ActionEvent event) {

Object source = event.getSource();

if(source == newMI) {

clearText();

fileName = null;

setTitle("JavaEdit"); // reset frame title

}

else if(source == openMI) {

doOpen();

}

else if(source == saveMI) {

doSave();

}

else if(source == saveAsMI){

doSaveAs();

}

else if(source == exitMI) {

System.exit(0);

}

else if(source == cutMI) {

doCopy();

doDelete();

}

else if(source == copyMI) {

doCopy();

}

else if(source == pasteMI) {

doPaste();

}

else if(source == deleteMI) {

doDelete();

}

}

/**

* method to specify and open a file

*/

private void doOpen() {

// display file selection dialog

FileDialog fDialog = new FileDialog(this, "Open ...", FileDialog.LOAD);

fDialog.setVisible(true);

// Get the file name chosen by the user

String name = fDialog.getFile();

// If user canceled file selection, return without doing anything.

if(name == null)

return;

fileName = fDialog.getDirectory() + name;

// Try to create a file reader from the chosen file.

FileReader reader=null;

try {

reader = new FileReader(fileName);

} catch (FileNotFoundException ex) {

MessageDialog dialog = new MessageDialog(this, "Error Message",

"File Not Found: "+fileName);

dialog.setVisible(true);

return;

}

BufferedReader bReader = new BufferedReader(reader);

// Try to read from the file one line at a time.

StringBuffer textBuffer = new StringBuffer();

try {

String textLine = bReader.readLine();

while (textLine != null) {

textBuffer.append(textLine + '\n');

textLine = bReader.readLine();

}

bReader.close();

reader.close();

} catch (IOException ioe) {

MessageDialog dialog = new MessageDialog(this, "Error Message",

"Error reading file: "+ioe.toString());

dialog.setVisible(true);

return;

}

setTitle("JavaEdit: " +name); // reset frame title

text.setText(textBuffer.toString());

}

/**

* method to clear text editing area

*/

private void clearText() {

text.setText("");

}

/**

* method to copy selected text to the clipBoard

*/

private void doCopy() {

clipBoard = new String(text.getSelectedText());

}

/**

* method to delete selected text

*/

private void doDelete() {

text.replaceRange("", text.getSelectionStart(), text.getSelectionEnd());

}

/**

* method to replace current selection with the contents of the clipBoard

*/

private void doPaste() {

if(clipBoard != null) {

text.replaceRange(clipBoard, text.getSelectionStart(),

text.getSelectionEnd());

}

}

/**

* class for message dialog

*/

class MessageDialog extends Dialog implements ActionListener {

private Label message;

private Button okButton;

// Constructor

public MessageDialog(Frame parent, String title, String messageString) {

super(parent, title, true);

setSize(400, 100);

setLocation(150, 150);

setLayout(new BorderLayout());

message = new Label(messageString, Label.CENTER);

add(message, BorderLayout.CENTER);

Panel panel = new Panel(new FlowLayout(FlowLayout.CENTER));

add(panel, BorderLayout.SOUTH);

okButton = new Button(" OK ");

okButton.addActionListener(this);

panel.add(okButton);

}

// implementing ActionListener

public void actionPerformed(ActionEvent event) {

setVisible(false);

dispose();

}

}

/**

* the main method

*/

public static void main(String[] argv) {

// create frame

JavaEdit frame = new JavaEdit();

Dimension size = Toolkit.getDefaultToolkit().getScreenSize();

frame.setSize(size.width-80, size.height-80);

frame.setLocation(20, 20);

// add window closing listener

frame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

// show the frame

frame.setVisible(true);

}

}

+1

这段代码为什么是AWT?为什么AWT有'FileDialog'时添加JFileChooser标签? –

2013-04-11 04:08:15

+0

另外,考虑重构使用['Action'](http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html)。 –

2013-04-11 05:43:28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值