wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes Help! Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Help!" Watch "Help!" New topic
Author

Help!

Christopher McLaughlin
Greenhorn

Joined: Aug 10, 2005
Posts: 3
Alright here is the situation, I am trying to create a Calculator applet that accepts complex number expressions, does the calculation and returns the results in a seperate text area in the form of:

expression = "rectangular form" or "polar form"

also there are three radio buttons which change the format of the expression.

at this point I can only get the calculate button to work half-arsed, and none of the radio buttons to work at all.

here is my CalcApplet.java file

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

public class CalcApplet extends JApplet implements ActionListener
{
protected JTextField entry;
protected JTextArea results;
protected JScrollPane resultsPane;
protected JButton calculate, clear, clearResults;
protected JRadioButton infix, prefix, postfix;
protected JPanel input, output, mode;
protected ButtonGroup group;

static String sInfix = "Infix Notation";
static String sPrefix = "Prefix Notation";
static String sPostfix = "Postfix Notation";

public void init()
{
// create GUI components
entry = new JTextField(35);
results = new JTextArea(10, 40);
JScrollPane resultsPane = new JScrollPane(results);
calculate = new JButton("Calculate");
clear = new JButton("Clear");
clearResults = new JButton("Clear Results");
infix = new JRadioButton(sInfix);
infix.setActionCommand(sInfix);
infix.setSelected(true);
prefix = new JRadioButton(sPrefix);
prefix.setActionCommand(sPrefix);
postfix = new JRadioButton(sPostfix);
postfix.setActionCommand(sPostfix);
group = new ButtonGroup();
group.add(infix);
group.add(prefix);
group.add(postfix);

//create and fill mode JPanel
mode = new JPanel();
mode.add(infix);
mode.add(prefix);
mode.add(postfix);

//create and fill the input JPanel
input = new JPanel();
input.add(entry);
input.add(calculate);
input.add(clear);

//create and fill the output JPanel
output = new JPanel();
output.add(resultsPane);
output.add(clearResults);

//add the JPanels to the content pane
getContentPane().add(mode, BorderLayout.NORTH);
getContentPane().add(input, BorderLayout.CENTER);
getContentPane().add(output, BorderLayout.SOUTH);

//Setup ActionListener
calculate.addActionListener( this );
clear.addActionListener( this );
clearResults.addActionListener( this );
infix.addActionListener ( this );
prefix.addActionListener ( this );
postfix.addActionListener ( this );
}

public Term createTermObject()
{

String text = entry.getText();
Term expr = ExprParser.parse( text );
return expr;
}

public void actionPerformed( ActionEvent e )
{

Object src = e.getSource();

if (src == calculate)
{
Term term = createTermObject();
results.append( term + "=" + term.toString() + " or " /* + term.toPolarString*/ + "\n" );
}
else if (src == clear)
{
entry.setText("");
}
else if (src == clearResults)
{
results.setText("");
}

}
}

and here is the website it is currently on: www.cet.nau.edu/~ckm33/cs126/proj5

and this is the site where the instructor put up what a finished product should look like and do:

http://www.cet.nau.edu/~apr/cs126/src/proj5/index.html

As you can see if you put in 5*i on his version the result is proper,
but when you use mine it comes out wrong...

any ideas?
Christopher McLaughlin
Greenhorn

Joined: Aug 10, 2005
Posts: 3
one other this is that I have looked up how to implement and use Jradiobuttons through sun's tutorial but it only has an example with changing pictures, and I need it to change the way the result is printed out.
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11420
    
  16

Christopher,

Please don't post the same question in multiple forums. It's exremely frustrating when somebody takes the time to help you, and then finds out you've already gotten an answer in a different place. Also, you may get confused when different people start giving different suggestions as to what to try...

i imagine a moderator will close one of these posts soon...

Link to other tread


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11420
    
  16

Now, what is your question? Posting a big hunk of code and saying "it doesn't work" makes it hard for anyone to help you. HOW does it not work? What is it specifically doing (or not doing) that you think should be different?

HOW are the radio buttons not working? they show up, only one can be selected at a time... are you saying you want them vertically like the professors?

if you ask simple, focused questions, you're much more likely to get a response.

something else that would help would be to use the "code" tags. if you put [ code ] and [ /code ] (without the spaces) around your code, it will preserve the formatting, making it MUCH easier for everyone else to read.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Help!