views:

447

answers:

3

Hello all, I'm new to java and I'm trying to swap out the text on a Button I've created. The code for my main class is as follows:

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

public class TeamProject extends Applet implements ActionListener, MouseListener
{
char[][] charValues = new char[10][10];
Table aTable;
boolean allowUserInput = false;
Button BtnStart;
Button randomChangeBtn;
boolean guessMode;
private AudioClip[] sounds = new AudioClip[5];
private int counter = 0;
//JSObject jso;

public void init()
{
        //setup buttons
 BtnStart = new Button("add row/column");
 BtnStart.addActionListener((ActionListener)this); //cast
 randomChangeBtn = new Button("change one value");
 randomChangeBtn.addActionListener((ActionListener)this);

            //add button
 this.add(BtnStart);

 //add image to Image objects
 Image imgO = getImage(getCodeBase(), "images/not.gif");
 Image imgX= getImage(getCodeBase(), "images/cross.gif");

            //setup table
 aTable = new Table(100, 100, 75, 55, 5, 5, imgX, imgO);

 //setBackground(Color.LIGHT_GRAY);
 super.resize(700, 700);

            //add mouse listener
 addMouseListener(this);

 //initially guessMode will be false
 guessMode = false;

            //to talk to javascript
 //jso = JSObject.getWindow(this);

 sounds[0] = getAudioClip (getCodeBase(), "images/buzzthruloud.wav");
 sounds[1] = getAudioClip (getCodeBase(), "images/inconceivable4.wav");
 sounds[2] = getAudioClip (getCodeBase(), "images/foghorn.wav");
 sounds[3] = getAudioClip (getCodeBase(), "images/waiting.wav");
 sounds[4] = getAudioClip (getCodeBase(), "images/whistldn.wav");
}

  public void paint(Graphics g)
  {
g.setColor(Color.black);
aTable.draw(g);
  }

  //Mouse listener methods
  public void mousePressed (MouseEvent e)
  {
    if(!guessMode){
  if ((allowUserInput)){
    aTable.swapSquareValue(e.getX(), e.getY());
    repaint();
  }
    }
    else{
      System.out.println("guessed row = " + e.getY() + " guessed col = " + e.getX());
      if(aTable.checkGuess(e.getX(), e.getY())){
        int n = JOptionPane.showConfirmDialog(null, "Excellent!! Would you like to progress to next level",

                                         "Correct!!!", JOptionPane.YES_NO_OPTION);

    if (n == JOpionPane.YES_OPTION) {


               }
 else{

    JOptionPane.showMessageDialog(null, "Nope", "alert", JOptionPane.INFORMATION_MESSAGE);

    sounds[counter].play();

  }



  //repaint();

}



  }



  public void mouseClicked (MouseEvent e) {}

  public void mouseEntered (MouseEvent e) {}

  public void mouseReleased (MouseEvent e) {}

  public void mouseExited (MouseEvent e) {}



  //Button action listener

public void actionPerformed(ActionEvent e)

{

 if (e.getSource() == BtnStart) {

   aTable.addRow();

   aTable.addColumn();

   BtnStart.setText("Roseindia.net");

   //this.remove(BtnStart);

   //this.add(randomChangeBtn);

   super.resize(700, 700);

   repaint();

}

else if (e.getSource() == randomChangeBtn) {

  aTable.randomChangeFunc();

  repaint();

  guessMode = true;

}



 allowUserInput = true;

 System.out.println(aTable.toString());

}



}

I'm trying to change to text in my actionPerformed(ActionEvent e) method. Like I said, I'm new, so please be gentle. Thanks :)

+2  A: 

You are using java.awt.Button. There is no setText() method in the java.awt.Button. You may use setLabel(String) instead.

And you do not have to import java.lang.* either since the java.lang package is available to all your Java programs by default.

If you change the line:

 Button BtnStart;

to

 JButton BtnStart;

and

 BtnStart = new Button("add row/column");

to

 BtnStart = new JButton("add row/column");

then you will be using the Swing Button and you will be able to call setText();

Vincent Ramdhanie
+1  A: 

The first thing you need to know is are you trying to create an Applet using AWT or Swing components. You import the Swing classes but are using AWT components. Most people these days use Swing.

In Swing your would never override the paint() method of the Applet. You would start by extending JApplet, then you would simply add components to the content pane of the applet. If you need to do custom painting then you do that by overriding the paintComponent() method of a JComponent or JPanel.

Start by reading the Swing tutorial for working examples of using applets.

camickr
A: 

Well Dear, u made good program, as u said that u want to swap the text then u shoud use the setLabel() method instead of setText but for change the text of a Label thetn you can use the setText() method.

Ok gud Luck

Harpreet Singh