Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 3 of 3

Thread: Code Help

  1. #1
    New to the CF scene
    Join Date
    Apr 2013
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Exclamation Code Help

    Hello,

    Below is the code that I am currently working on. At this moment I am having great difficulty implementing the Save/Save As menu items to the File Menu.

    Complete the implementation for the Save and Save As menu items in the File menu. When Save As is selected, a file selection dialog box should be displayed and the text content saved to the file chosen. When Save is selected, the text content should be saved to the current file. If no current file exists, a dialog box should appear for file selection like Save As.
    PHP Code:
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import javax.swing.*;

    import javax.swing.JOptionPane;

    public class 
    JavaEdit extends Frame implements ActionListener {

    String clipBoard;
    String fileName;
    TextArea text;
    MenuItem newMIopenMIsaveMIsaveAsMIexitMI;
    MenuItem cutMIcopyMIdeleteMIpasteMIselectallMI;
    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);
    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);
    selectallMI editMenu.add(new MenuItem("Select All"));
    selectallMI.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(textBorderLayout.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 == 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();
    }
    else if(
    source == selectallMI) {
    text.selectAll();

    }
    else if(
    source == aboutjavaeditMI) {
    JOptionPane.showMessageDialog(this"JavaEdit in Java, Version 2.1, 2013."
    "This is the Dialog Message"JOptionPane.PLAIN_MESSAGE);
    }
    else if(
    source == saveAsMI) {

    }
    else if(
    source == saveMI){
        

    }
    }

    /**
    * 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(clipBoardtext.getSelectionStart(),
    text.getSelectionEnd());
    }
    }

    public 
    void selectAll() {
    if(
    clipBoard !=null) {
    clipBoard = new String(text.getSelectedText());
    }
    }
    /**
    * class for message dialog
    */
    class MessageDialog extends Dialog implements ActionListener {
    private 
    Label message;
    private 
    Button okButton;

    // Constructor
    public MessageDialog(Frame parentString titleString messageString) {
    super(parenttitletrue);
    setSize(400100);
    setLocation(150150);
    setLayout(new BorderLayout());

    message = new Label(messageStringLabel.CENTER);
    add(messageBorderLayout.CENTER);

    Panel panel = new Panel(new FlowLayout(FlowLayout.CENTER));
    add(panelBorderLayout.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-80size.height-80);
    frame.setLocation(2020);

    // add window closing listener
    frame.addWindowListener(new WindowAdapter() {
    public 
    void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    });

    // show the frame
    frame.setVisible(true);
    }


  • #2
    God Emperor Fou-Lu's Avatar
    Join Date
    Sep 2002
    Location
    Saskatoon, Saskatchewan
    Posts
    16,987
    Thanks
    4
    Thanked 2,660 Times in 2,629 Posts
    What have you tried so far? This current code doesn't have any implementation for the save methods.
    All you need to do is check if a filename has been provided and if it has, implement the save handling by writing the file using something like the FileOutputStream. If the filename is no good, prompt for the save as mechanism which simply provides a FileDialog to select a file to save to, captures that file information, and then attempts to save again. So separate the two parts, and chain the methods together to eliminate redundancy.
    PHP Code:
    header('HTTP/1.1 420 Enhance Your Calm'); 

  • #3
    New to the CF scene
    Join Date
    Apr 2013
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts
    I have tried using the JFileChooser method, but that did not successfully work the way I wanted it to. Like I said, I do not know where to start coding the save/save as features. Any hints or insight would be greatly appreciated.


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •