Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8749929
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T12:46:32+00:00 2026-06-13T12:46:32+00:00

I’m working on a homework assignment that has four text fields and one text

  • 0

I’m working on a homework assignment that has four text fields and one text area, and a button that saves the text fields and text area to a text file, one element per line. Then, a dialog should notify the user that the file has been saved. It should then empty the text fields and text area when the dialog is closed. However, I’m having some issues with the program.

Regarding the dialog window, the program displays the following error when I attempt to compile:

emailProg.java:81: error: no suitable method found for showMessageDialog(emailProg.sendAction, String)

JOptionPane.showMessageDialog(this, "Saved");
           ^

Second, I am unsure of how to empty the textfields and textareas after closing the dialog. I know that emptying a textfield can be done by using code such as:

[textfield].setText("");

But I’m not sure how to do this only after closing the dialog.

Here is my code:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class emailProg extends JFrame {
    private JPanel panNorth;
    private JPanel panCenter;
    private JPanel panSouth;

    private JLabel toLabel;
    private JLabel ccLabel;
    private JLabel bccLabel;
    private JLabel subLabel;
    private JLabel msgLabel;

    private JTextField toField;
    private JTextField ccField;
    private JTextField bccField;
    private JTextField subField;
    private JTextArea msgArea;

    private JButton send;

//The Constructor
public emailProg() {
    setTitle("Compose Email");
    setLayout(new BorderLayout());

    panNorth = new JPanel();
    panNorth.setLayout(new GridLayout(4, 2));
    JLabel toLabel = new JLabel("To:");
    panNorth.add(toLabel);
    JTextField toField = new JTextField(15);
    panNorth.add(toField);
    JLabel ccLabel = new JLabel("CC:");
    panNorth.add(ccLabel);
    JTextField ccField = new JTextField(15);
    panNorth.add(ccField);
    JLabel bccLabel = new JLabel("Bcc:");
    panNorth.add(bccLabel);
    JTextField bccField = new JTextField(15);
    panNorth.add(bccField);
    JLabel subLabel = new JLabel("Subject:");
    panNorth.add(subLabel);
    JTextField subField = new JTextField(15);
    panNorth.add(subField);
    add(panNorth, BorderLayout.NORTH);

    panCenter = new JPanel();
    panCenter.setLayout(new GridLayout(2, 1));
    JLabel msgLabel = new JLabel("Message:");
    panCenter.add(msgLabel);
    JTextArea msgArea = new JTextArea(5, 15);
    panCenter.add(msgArea);
    add(panCenter, BorderLayout.CENTER);

    panSouth = new JPanel();
    panSouth.setLayout(new FlowLayout());
    JButton send = new JButton("Send");
    panSouth.add(send);
    add(panSouth, BorderLayout.SOUTH);

    send.addActionListener (new sendAction());
}

private class sendAction implements ActionListener {
    public void actionPerformed (ActionEvent event) {
        try {
            PrintWriter outfile = new PrintWriter("email.txt");
            outfile.print("To: ");
            outfile.println(toField.getText());
            outfile.print("CC: ");
            outfile.println(ccField.getText());
            outfile.print("Bcc: ");
            outfile.println(bccField.getText());
            outfile.print("Subject: ");
            outfile.println(subField.getText());
            outfile.print("Message: ");
            outfile.println(msgArea.getText());

            JOptionPane.showMessageDialog(this, "Saved");
        }
        catch(FileNotFoundException e) {
        System.out.println("File not found.");
        }
    }
}

public static void main(String[] args) {
    emailProg win = new emailProg();
    win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    win.pack();
    win.setVisible(true);
}

}

I appreciate any help you can offer.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T12:46:33+00:00Added an answer on June 13, 2026 at 12:46 pm

    JOptionPane.showMessageDialog(...) expects a Component as its first parameter. In your case you’re calling it from a class that extends an ActionListener and as such this does not refer to a component. You can consider passing a null for this parameter. Something like this:

    JOptionPane.showMessageDialog(null, "Saved");
    

    Also as a sidenote, consider reading about Java Naming Convention. Class names ideally starts with a capital letter.

    Edit: If you look closely in your code, in your constructor you’re creating local variables of the same name as your global variables and adding them to your panel. For example, you have a global private JTextField toField;, however in your constructor you’re doing something like this:

    JTextField toField = new JTextField(15);
    panNorth.add(toField);
    

    And so your global variable still remains null. When you try to perform any operation in your actionPerformed() code using this variable, you would experience a NullPointerException.

    Here’s the updated code for your reference. Note that I’ve made certain changes, especially to the class names and added SwingUtilities.invokeLater(....) to execute your code. To know why this is necessary, read about “The Event Dispatch Thread” and “Concurrency in Swing”

    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.FileNotFoundException;
    import java.io.PrintWriter;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    
    public class EmailProg extends JFrame {
        private JPanel panNorth;
        private JPanel panCenter;
        private JPanel panSouth;
    
        private JLabel toLabel;
        private JLabel ccLabel;
        private JLabel bccLabel;
        private JLabel subLabel;
        private JLabel msgLabel;
    
        private JTextField toField;
        private JTextField ccField;
        private JTextField bccField;
        private JTextField subField;
        private JTextArea msgArea;
    
        private JButton send;
    
        // The Constructor
        public EmailProg() {
            setTitle("Compose Email");
            setLayout(new BorderLayout());
    
            panNorth = new JPanel();
            panNorth.setLayout(new GridLayout(4, 2));
            toLabel = new JLabel("To:");
            panNorth.add(toLabel);
            toField = new JTextField(15);
            panNorth.add(toField);
            ccLabel = new JLabel("CC:");
            panNorth.add(ccLabel);
            ccField = new JTextField(15);
            panNorth.add(ccField);
            bccLabel = new JLabel("Bcc:");
            panNorth.add(bccLabel);
            bccField = new JTextField(15);
            panNorth.add(bccField);
            subLabel = new JLabel("Subject:");
            panNorth.add(subLabel);
            subField = new JTextField(15);
            panNorth.add(subField);
            add(panNorth, BorderLayout.NORTH);
    
            panCenter = new JPanel();
            panCenter.setLayout(new GridLayout(2, 1));
            msgLabel = new JLabel("Message:");
            panCenter.add(msgLabel);
            msgArea = new JTextArea(5, 15);
            panCenter.add(msgArea);
            add(panCenter, BorderLayout.CENTER);
    
            panSouth = new JPanel();
            panSouth.setLayout(new FlowLayout());
            send = new JButton("Send");
            panSouth.add(send);
            add(panSouth, BorderLayout.SOUTH);
    
            send.addActionListener(new SendAction());
        }
    
        private class SendAction implements ActionListener {
            public void actionPerformed(ActionEvent event) {
                try {
                    PrintWriter outfile = new PrintWriter("email.txt");
                    outfile.print("To: ");
                    outfile.println(toField.getText());
                    outfile.print("CC: ");
                    outfile.println(ccField.getText());
                    outfile.print("Bcc: ");
                    outfile.println(bccField.getText());
                    outfile.print("Subject: ");
                    outfile.println(subField.getText());
                    outfile.print("Message: ");
                    outfile.println(msgArea.getText());
    
                    JOptionPane.showMessageDialog(null, "Saved");
                } catch (FileNotFoundException e) {
                    System.out.println("File not found.");
                }
            }
        }
    
        public static void main(String[] args) {
    
            //Make sure that all your operations happens through the EDT
            SwingUtilities.invokeLater(new Runnable() {
    
                @Override
                public void run() {
                    EmailProg win = new EmailProg();
                    win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    win.pack();
                    win.setVisible(true);
    
                }
            });
        }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
I'm working with an upstream system that sometimes sends me text destined for HTML/XML
That's pretty much it. I'm using Nokogiri to scrape a web page what has
I've got a string that has curly quotes in it. I'd like to replace
In my XML file chapters tag has more chapter tag.i need to display chapters
I have a text area in my form which accepts all possible characters from
I have a reasonable size flat file database of text documents mostly saved in
I have a .ini file as follows: [playlist] numberofentries=2 File1=http://87.230.82.17:80 Title1=(#1 - 365/1400) Example
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I have just tried to save a simple *.rtf file with some websites and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.