DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

+ Reply to Thread
Results 1 to 3 of 3
  1. #1
    m Guest

    re: beginner java need help


    I am a beginner with Java & yes this is for a class. My group has spent 2
    weeks trying to get this to work. We have to create a base converter with
    a GUI interface. We have tried lots of things & nothing works. Now we are
    getting this error "the action performed is not defined". Any suggestions
    or tips would be greatly appreciated.





    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.text.*;
    import java.lang.String.*;


    class Counter extends JPanel implements ActionListener
    {


    int base,value;
    int currentnum=0;
    char counting [] = { '0','1','2','3','4','5','6','7','8','9','A','B','C',
    'D','E','F','G','H','I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X','Y','Z'};

    protected JTextField baseField;
    protected JTextField intrValField;
    protected JTextField numDisplay;
    protected JButton decButton= new JButton( "Decrement" );
    protected JButton incButton= new JButton( "Increment" );
    protected JButton resetButton= new JButton( "Reset" );

    public Counter()
    {

    init();
    doTheLayout( );


    }

    public void init()
    {


    decButton.addActionListener (this);
    decButton.setActionCommand("dec");



    incButton.addActionListener (this);
    incButton.setActionCommand("inc");



    resetButton.addActionListener (this);
    resetButton.setActionCommand("re");

    }


    public void actionPerfomed(ActionEvent evt)
    {

    if ("dec".equals(evt.getActionCommand()))
    {
    initializeData();
    DecInterval();
    }

    else if ("inc".equals(evt.getActionCommand()))
    {
    initializeData();
    IncInterval();
    }

    else
    {
    numDisplay.setText("0");
    intrValField.setText("0");
    baseField.setText("0");
    currentnum=0;
    }
    }

    // Make all the objects

    public void initializeData()
    {
    base= Integer.parseInt(baseField.getText());
    value=Integer.parseInt(intrValField.getText());
    }



    // Layout all the objects
    public void doTheLayout( )
    {
    JTextField baseField = new JTextField( 10 );
    JTextField intrValField = new JTextField( 10 );
    JTextField numDisplay= new JTextField(20);
    numDisplay.setEditable(false);

    JPanel bottomHalf = new JPanel( );
    JPanel topHalf= new JPanel( );


    // Layout the top half
    topHalf.setLayout( new FlowLayout( ) );
    topHalf.add( new JLabel( "Base" ) );
    topHalf.add( baseField );


    topHalf.add( new JLabel( "Interval" ) );
    intrValField=new JTextField(10);
    topHalf.add( intrValField );


    intrValField.addActionListener(this);
    topHalf.add( new JLabel( "Current Count" ) );
    numDisplay=new JTextField(20);
    topHalf.add( numDisplay );



    // Layout the bottom half
    bottomHalf.setLayout( new FlowLayout( ) );
    bottomHalf.add( decButton );
    bottomHalf.add( incButton );
    bottomHalf.add( resetButton );


    // Now layout GUI
    setLayout( new BorderLayout( ) );
    add( topHalf, "North" );
    add( bottomHalf, "South" );

    }


    public void IncInterval()
    {
    int tempb=base;
    currentnum=currentnum+value;
    int tempnum=currentnum;
    String output= " ";
    int remainder, beginning;



    while (tempnum > tempb)
    {
    remainder= tempnum % tempb;
    output= counting[remainder] + output;
    beginning= tempnum/tempb;
    tempnum= beginning;
    }

    output= counting[remainder] + output;

    numDisplay.setText(output);


    }

    public void DecInterval()
    {
    int tempb=base;
    currentnum=currentnum-value;
    int tempnum=currentnum;
    String output= " ";
    int remainder, beginning;



    while (tempnum > tempb)
    {
    remainder= tempnum % tempb;
    output= counting[remainder] + output;
    beginning= tempnum/tempb;
    tempnum= beginning;
    }

    output= counting[remainder] + output;

    numDisplay.setText(output);

    }
    }



    class CloseableFrame extends JFrame
    {
    public CloseableFrame( )
    {
    addWindowListener( new WindowAdapter( )
    {
    public void windowClosing( WindowEvent event )
    { System.exit( 0 ); }

    }
    );
    }
    }

    class CounterGUI extends CloseableFrame
    {
    public static void main( String [] args )
    {
    JFrame f = new CounterGUI( );
    f.setTitle( "The Counter" );

    Container contentPane = f.getContentPane( );

    contentPane.add( new Counter() );
    f.pack( );
    f.show( );
    }
    }





  2. #2
    E Guest

    re: beginner java need help


    "M"

    I am not sure about your exact requirements for creating a base converter
    are but it seems to me that your main problem is getting the ActionListener
    functions working. I have modified your code concentrating only on the ActionListener
    object code definitions. I have also simplified your three classes in one
    class. A simple comparison of your old code to the new code should be self
    explanatory! Good luck with finishing your project!

    E


    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.text.*;
    import java.lang.String.*;

    class CounterGUI extends JFrame implements ActionListener
    {
    int base,value;
    int currentnum=0;

    char counting [] = { '0','1','2','3','4','5','6','7','8','9','A','B','C',
    'D','E','F','G','H','I','J','K','L','M','N','O','P',
    'Q','R','S','T','U','V','W','X','Y','Z'};

    protected JTextField baseField;
    protected JTextField intrValField;
    protected JTextField numDisplay;
    protected JButton decButton= new JButton( "Decrement" );
    protected JButton incButton= new JButton( "Increment" );
    protected JButton resetButton= new JButton( "Reset" );

    public CounterGUI () {

    baseField = new JTextField("0", 10 );
    intrValField = new JTextField("0", 10 );
    numDisplay= new JTextField("0", 20);
    numDisplay.setEditable(false);

    JPanel bottomHalf = new JPanel( );
    JPanel topHalf= new JPanel( );

    // Layout the top half
    topHalf.setLayout( new FlowLayout( ) );
    topHalf.add( new JLabel( "Base" ) );
    topHalf.add( baseField );

    topHalf.add( new JLabel( "Interval" ) );
    intrValField=new JTextField(10);
    topHalf.add( intrValField );

    // Unsure what this was for so I created it as an inline routine

    // ActionListener implementation, but it could easily be transferred
    to
    // the actionPerformed routine below.
    intrValField.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    System.out.println("intrValField Action");
    }
    });

    topHalf.add( new JLabel( "Current Count" ) );
    numDisplay=new JTextField(20);
    topHalf.add( numDisplay );

    // Layout the bottom half
    bottomHalf.setLayout( new FlowLayout( ) );
    bottomHalf.add( decButton );
    bottomHalf.add( incButton );
    bottomHalf.add( resetButton );

    // The the JPanel topHalf and bottomHalf to the ContentPane of JFrame
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(topHalf, "North" );
    getContentPane().add(bottomHalf, "South" );

    // Add the ActionListeners, processed by actionPerformed event handler
    // below.
    decButton.addActionListener(this);
    incButton.addActionListener(this);
    resetButton.addActionListener(this);

    }

    public static void main( String [] args )
    {
    JFrame f = new CounterGUI();
    f.setTitle( "The Counter" );

    // Old way of doing it (Java 1.2 and <
    //addWindowListener( new WindowAdapter( )
    // {
    // public void windowClosing( WindowEvent event )
    // { System.exit( 0 ); }
    //
    // }
    //);
    // New way of setting closing, less text.
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    f.pack( );
    f.show( );
    }

    public void actionPerformed(ActionEvent e) {

    Object source = e.getSource();

    if (source == decButton) {
    System.out.println("Decrement Button");
    } else if (source == incButton) {
    System.out.println("Increment Button");
    } else if (source == resetButton) {
    System.out.println("Reset Button");
    }
    }
    }

    "m" <merthb@comcast.net> wrote:
    >
    >I am a beginner with Java & yes this is for a class. My group has spent

    2
    >weeks trying to get this to work. We have to create a base converter with
    >a GUI interface. We have tried lots of things & nothing works. Now we

    are
    >getting this error "the action performed is not defined". Any suggestions
    >or tips would be greatly appreciated.
    >
    >
    >
    >
    >
    >import java.awt.*;
    >import javax.swing.*;
    >import java.awt.event.*;
    >import java.text.*;
    >import java.lang.String.*;
    >
    >
    >class Counter extends JPanel implements ActionListener
    >{
    >
    >
    > int base,value;
    > int currentnum=0;
    > char counting [] = { '0','1','2','3','4','5','6','7','8','9','A','B','C',
    > 'D','E','F','G','H','I','J','K','L','M','N','O','P',
    > 'Q','R','S','T','U','V','W','X','Y','Z'};
    >
    > protected JTextField baseField;
    > protected JTextField intrValField;
    > protected JTextField numDisplay;
    > protected JButton decButton= new JButton( "Decrement" );
    > protected JButton incButton= new JButton( "Increment" );
    > protected JButton resetButton= new JButton( "Reset" );
    >
    > public Counter()
    > {
    >
    > init();
    > doTheLayout( );
    >
    >
    > }
    >
    > public void init()
    > {
    >
    >
    > decButton.addActionListener (this);
    > decButton.setActionCommand("dec");
    >
    >
    >
    > incButton.addActionListener (this);
    > incButton.setActionCommand("inc");
    >
    >
    >
    > resetButton.addActionListener (this);
    > resetButton.setActionCommand("re");
    >
    > }
    >
    >
    > public void actionPerfomed(ActionEvent evt)
    > {
    >
    > if ("dec".equals(evt.getActionCommand()))
    > {
    > initializeData();
    > DecInterval();
    > }
    >
    > else if ("inc".equals(evt.getActionCommand()))
    > {
    > initializeData();
    > IncInterval();
    > }
    >
    > else
    > {
    > numDisplay.setText("0");
    > intrValField.setText("0");
    > baseField.setText("0");
    > currentnum=0;
    > }
    > }
    >
    > // Make all the objects
    >
    > public void initializeData()
    > {
    > base= Integer.parseInt(baseField.getText());
    > value=Integer.parseInt(intrValField.getText());
    > }
    >
    >
    >
    > // Layout all the objects
    > public void doTheLayout( )
    > {
    > JTextField baseField = new JTextField( 10 );
    > JTextField intrValField = new JTextField( 10 );
    > JTextField numDisplay= new JTextField(20);
    > numDisplay.setEditable(false);
    >
    > JPanel bottomHalf = new JPanel( );
    > JPanel topHalf= new JPanel( );
    >
    >
    > // Layout the top half
    > topHalf.setLayout( new FlowLayout( ) );
    > topHalf.add( new JLabel( "Base" ) );
    > topHalf.add( baseField );
    >
    >
    > topHalf.add( new JLabel( "Interval" ) );
    > intrValField=new JTextField(10);
    > topHalf.add( intrValField );
    >
    >
    > intrValField.addActionListener(this);
    > topHalf.add( new JLabel( "Current Count" ) );
    > numDisplay=new JTextField(20);
    > topHalf.add( numDisplay );
    >
    >
    >
    > // Layout the bottom half
    > bottomHalf.setLayout( new FlowLayout( ) );
    > bottomHalf.add( decButton );
    > bottomHalf.add( incButton );
    > bottomHalf.add( resetButton );
    >
    >
    > // Now layout GUI
    > setLayout( new BorderLayout( ) );
    > add( topHalf, "North" );
    > add( bottomHalf, "South" );
    >
    > }
    >
    >
    > public void IncInterval()
    > {
    > int tempb=base;
    > currentnum=currentnum+value;
    > int tempnum=currentnum;
    > String output= " ";
    > int remainder, beginning;
    >
    >
    >
    > while (tempnum > tempb)
    > {
    > remainder= tempnum % tempb;
    > output= counting[remainder] + output;
    > beginning= tempnum/tempb;
    > tempnum= beginning;
    > }
    >
    > output= counting[remainder] + output;
    >
    > numDisplay.setText(output);
    >
    >
    > }
    >
    > public void DecInterval()
    > {
    > int tempb=base;
    > currentnum=currentnum-value;
    > int tempnum=currentnum;
    > String output= " ";
    > int remainder, beginning;
    >
    >
    >
    > while (tempnum > tempb)
    > {
    > remainder= tempnum % tempb;
    > output= counting[remainder] + output;
    > beginning= tempnum/tempb;
    > tempnum= beginning;
    > }
    >
    > output= counting[remainder] + output;
    >
    > numDisplay.setText(output);
    >
    > }
    >}
    >
    >
    >
    >class CloseableFrame extends JFrame
    >{
    > public CloseableFrame( )
    > {
    > addWindowListener( new WindowAdapter( )
    > {
    > public void windowClosing( WindowEvent event )
    > { System.exit( 0 ); }
    >
    > }
    > );
    > }
    >}
    >
    >class CounterGUI extends CloseableFrame
    >{
    > public static void main( String [] args )
    > {
    > JFrame f = new CounterGUI( );
    > f.setTitle( "The Counter" );
    >
    > Container contentPane = f.getContentPane( );
    >
    > contentPane.add( new Counter() );
    > f.pack( );
    > f.show( );
    > }
    >}
    >
    >
    >
    >



  3. #3
    JackT Guest

    re: beginner java need help


    M -

    The way you are attaching your actionlistener to your buttons doesn't look
    right. You should be able to pass the actual name of the component without
    quotes. In addition, I think you need an inner class that handles the listening
    events. If you are still having problems please post a reply. I can put up
    some code to show you what I mean.

    JackT

    "m" <merthb@comcast.net> wrote:
    >
    >I am a beginner with Java & yes this is for a class. My group has spent

    2
    >weeks trying to get this to work. We have to create a base converter with
    >a GUI interface. We have tried lots of things & nothing works. Now we

    are
    >getting this error "the action performed is not defined". Any suggestions
    >or tips would be greatly appreciated.
    >
    >
    >
    >
    >
    >import java.awt.*;
    >import javax.swing.*;
    >import java.awt.event.*;
    >import java.text.*;
    >import java.lang.String.*;
    >
    >
    >class Counter extends JPanel implements ActionListener
    >{
    >
    >
    > int base,value;
    > int currentnum=0;
    > char counting [] = { '0','1','2','3','4','5','6','7','8','9','A','B','C',
    > 'D','E','F','G','H','I','J','K','L','M','N','O','P',
    > 'Q','R','S','T','U','V','W','X','Y','Z'};
    >
    > protected JTextField baseField;
    > protected JTextField intrValField;
    > protected JTextField numDisplay;
    > protected JButton decButton= new JButton( "Decrement" );
    > protected JButton incButton= new JButton( "Increment" );
    > protected JButton resetButton= new JButton( "Reset" );
    >
    > public Counter()
    > {
    >
    > init();
    > doTheLayout( );
    >
    >
    > }
    >
    > public void init()
    > {
    >
    >
    > decButton.addActionListener (this);
    > decButton.setActionCommand("dec");
    >
    >
    >
    > incButton.addActionListener (this);
    > incButton.setActionCommand("inc");
    >
    >
    >
    > resetButton.addActionListener (this);
    > resetButton.setActionCommand("re");
    >
    > }
    >
    >
    > public void actionPerfomed(ActionEvent evt)
    > {
    >
    > if ("dec".equals(evt.getActionCommand()))
    > {
    > initializeData();
    > DecInterval();
    > }
    >
    > else if ("inc".equals(evt.getActionCommand()))
    > {
    > initializeData();
    > IncInterval();
    > }
    >
    > else
    > {
    > numDisplay.setText("0");
    > intrValField.setText("0");
    > baseField.setText("0");
    > currentnum=0;
    > }
    > }
    >
    > // Make all the objects
    >
    > public void initializeData()
    > {
    > base= Integer.parseInt(baseField.getText());
    > value=Integer.parseInt(intrValField.getText());
    > }
    >
    >
    >
    > // Layout all the objects
    > public void doTheLayout( )
    > {
    > JTextField baseField = new JTextField( 10 );
    > JTextField intrValField = new JTextField( 10 );
    > JTextField numDisplay= new JTextField(20);
    > numDisplay.setEditable(false);
    >
    > JPanel bottomHalf = new JPanel( );
    > JPanel topHalf= new JPanel( );
    >
    >
    > // Layout the top half
    > topHalf.setLayout( new FlowLayout( ) );
    > topHalf.add( new JLabel( "Base" ) );
    > topHalf.add( baseField );
    >
    >
    > topHalf.add( new JLabel( "Interval" ) );
    > intrValField=new JTextField(10);
    > topHalf.add( intrValField );
    >
    >
    > intrValField.addActionListener(this);
    > topHalf.add( new JLabel( "Current Count" ) );
    > numDisplay=new JTextField(20);
    > topHalf.add( numDisplay );
    >
    >
    >
    > // Layout the bottom half
    > bottomHalf.setLayout( new FlowLayout( ) );
    > bottomHalf.add( decButton );
    > bottomHalf.add( incButton );
    > bottomHalf.add( resetButton );
    >
    >
    > // Now layout GUI
    > setLayout( new BorderLayout( ) );
    > add( topHalf, "North" );
    > add( bottomHalf, "South" );
    >
    > }
    >
    >
    > public void IncInterval()
    > {
    > int tempb=base;
    > currentnum=currentnum+value;
    > int tempnum=currentnum;
    > String output= " ";
    > int remainder, beginning;
    >
    >
    >
    > while (tempnum > tempb)
    > {
    > remainder= tempnum % tempb;
    > output= counting[remainder] + output;
    > beginning= tempnum/tempb;
    > tempnum= beginning;
    > }
    >
    > output= counting[remainder] + output;
    >
    > numDisplay.setText(output);
    >
    >
    > }
    >
    > public void DecInterval()
    > {
    > int tempb=base;
    > currentnum=currentnum-value;
    > int tempnum=currentnum;
    > String output= " ";
    > int remainder, beginning;
    >
    >
    >
    > while (tempnum > tempb)
    > {
    > remainder= tempnum % tempb;
    > output= counting[remainder] + output;
    > beginning= tempnum/tempb;
    > tempnum= beginning;
    > }
    >
    > output= counting[remainder] + output;
    >
    > numDisplay.setText(output);
    >
    > }
    >}
    >
    >
    >
    >class CloseableFrame extends JFrame
    >{
    > public CloseableFrame( )
    > {
    > addWindowListener( new WindowAdapter( )
    > {
    > public void windowClosing( WindowEvent event )
    > { System.exit( 0 ); }
    >
    > }
    > );
    > }
    >}
    >
    >class CounterGUI extends CloseableFrame
    >{
    > public static void main( String [] args )
    > {
    > JFrame f = new CounterGUI( );
    > f.setTitle( "The Counter" );
    >
    > Container contentPane = f.getContentPane( );
    >
    > contentPane.add( new Counter() );
    > f.pack( );
    > f.show( );
    > }
    >}
    >
    >
    >
    >



Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


Top DevX Stories

Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL


Sponsored Links