954,523 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

GUI action events using nameless default package

Im writing the Applet GUI code that uses another class to translate a string into pig latin (dubbed PigLatin.class) My gui has two text areas, a few labels, and two buttons, but I'm having some trouble with event handling.

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

public class TxtCrypt extends JApplet implements ActionListener {
    LayoutManager lo;
    JButton encBtn, clrBtn;
    JTextArea preCrypTxt, postCrypTxt;
    JLabel titleLbl, infoLbl, plainLbl, ciphLbl;
    String inStr, outStr;

//    public TxtCrypt()  {
   
//    }

    public void init () {
        lo = new FlowLayout();
        setLayout(lo);
        setBackground(Color.BLUE);

        titleLbl = new JLabel("Text Encryption Program");
        titleLbl.setFont(new Font("SansSeriff", Font.BOLD, 20));
        titleLbl.setForeground(Color.white);

        infoLbl = new JLabel("\u00A9 McGalliger Manufacturing");
        infoLbl.setFont(new Font("SansSeriff", Font.BOLD, 16));
        infoLbl.setForeground(Color.white);      

        plainLbl = new JLabel("Plaintext: ");
        plainLbl.setFont(new Font("SansSeriff", Font.BOLD, 12));
        plainLbl.setForeground(Color.white);

        ciphLbl = new JLabel("Ciphertext: ");
        ciphLbl.setFont(new Font("SansSeriff", Font.BOLD, 12));
        ciphLbl.setForeground(Color.white);

        encBtn = new JButton("Encrypt");
        encBtn.setActionCommand("encAct");
        encBtn.setToolTipText("Enter and ecrypt text.");

        clrBtn = new JButton("Clear");
        clrBtn.setActionCommand("clrAct");
        clrBtn.setToolTipText("Clear the plain and ecrypted text.");

        preCrypTxt = new JTextArea("Enter your text to encrypt", 5, 35);
        preCrypTxt.setLineWrap(true);
        preCrypTxt.setWrapStyleWord(true); 
   
        postCrypTxt = new JTextArea(5, 35);
        postCrypTxt.setLineWrap(true);
        postCrypTxt.setWrapStyleWord(true);

        JPanel title = new JPanel();
            title.setLayout(new BorderLayout());
            title.setBackground(Color.BLUE);
            title.add(titleLbl, BorderLayout.CENTER);         

        JPanel top = new JPanel();
            top.setLayout(new BorderLayout());
            top.setBackground(Color.BLUE);
            top.add(plainLbl, BorderLayout.NORTH);
            top.add(preCrypTxt, BorderLayout.CENTER);


        JPanel mid = new JPanel();
            mid.setLayout(new BorderLayout());
            mid.setBackground(Color.BLUE);
            mid.add(encBtn, BorderLayout.WEST);
            mid.add(clrBtn, BorderLayout.EAST); 


        JPanel bot = new JPanel();
            bot.setLayout(new BorderLayout());
            bot.setBackground(Color.BLUE);
            bot.add(ciphLbl, BorderLayout.NORTH);
            bot.add(postCrypTxt, BorderLayout.CENTER);
            bot.add(infoLbl, BorderLayout.SOUTH);

        add(title);
        add(top);
        add(mid);
        add(bot);

        encBtn.addActionListener(this);
        clrBtn.addActionListener(this);

    }
     
    public void actionPerformed (ActionEvent e) {
            
        if ("encAct".equals(e.getActionCommand())) {
            String inStr = preCrypTxt.getText();
        //use PigLatin.encrypt         
            postCrypTxt.setText(outStr);
        }
        else if("clrAct".equals(e.getActionCommand())) {
             preCrypTxt.setText("");    
             postCrypTxt.setText("");
        }
        else {
        //error
        }
    }    
}


I'm need to take the text from the first textarea pass it to the PigLatin class into the encrypt method which will return a string and add that new string to the second text area. Thats the basis of the project, not sure why the applet frames background isn't blue(setBackground) nor clear button isnt working. I would also like if when users click and change focus to the textarea it would remove the starting text, but Im new to event handling.

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 
clear button isnt working.


Add some debugging printlns to your code to show the values of the variables as they are set and changed.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

printlns arent for applets?

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 

They work fine for me. The output goes to the browser's java console.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

I didnt recompile or change anything so idk why clear works now. One step down, still trying to figure out how to pass a string to the other class's 'encrypt method', and get all my background to be solid blue.

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 
how to pass a string to the other class's 'encrypt method'


Get a reference to the object and call a method.
One way is to create a new instance of the class and save the reference in a class variable.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

I was trying to do that with

if ("encAct".equals(e.getActionCommand())) {
            inStr = preCrypTxt.getText();
	   outStr = PigLatin.encrypt(inStr);         
            postCrypTxt.setText(outStr);
        }

Not sure how else if would be coded

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 

Did the code work?
If there were errors, you need to post the full text of the error messages if you want help.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

Nothing happened on the applet, no compiler errors with that code, I can normally figure those out.

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 
Nothing happened on the applet,


Please explain.
Add printlns to the code to show the execution flow.
If nothing prints out, then there is something wrong with the way you are executing the code.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

Well again after not changing anything the translation code works (as if my compiler is hanging for a few minutes)

How do you use printlns on a gui applet?

I still don't know how to get my background to be a solid blue, its using the standard 'metal' java background color even with my setbackground

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 
How do you use printlns on a gui applet?


There is no difference in usage between console and GUI.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

Again a few minutes after compiling my code starts working after not changing anything(as if my compiler is hanging)

How do you use printlns in a gui applet?

I also cannot get my applets background to be solid blue (even after using a setBackground(Color.blue)) it only uses the default 'metal' java look

eek my internet is dying and double posting! TY so far

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 
How do you use printlns in a gui applet?


It prints to the java console.

NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

I'm not using any IDE like ecliplse just cmd and notepad, so no console to print to when using HTML to display applet. Do you know why my background wont change color?

loserspearl
Light Poster
35 posts since Sep 2011
Reputation Points: 10
Solved Threads: 0
 

No ideas on your background.

using HTML to display applet.


What program displays the applet?
If its a browser, look in the browser's java console.
It looks like this: You can see some of my program's printlns at the bottom of the window

Attachments JavaConsole.png 11.7KB
NormR1
Posting Expert
Moderator
6,677 posts since Jun 2010
Reputation Points: 1,138
Solved Threads: 656
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You