Java: Problème à l'aide de setText() la méthode avec Bouton
Je suis débutant en java et je suis en train de remplacer le texte sur un Bouton, je l'ai créé. Le code de ma classe principale est comme suit:
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());
}
}
Je suis en train de modifier le texte dans mon actionPerformed(ActionEvent e) de la méthode. Comme je l'ai dit, je suis nouvelle, donc, soyez doux. Merci 🙂
- Il y a trop d'étrangers de code dans votre exemple, et c'est mal formaté. Merci de créer un simple cas de test qui montre le problème!
Vous devez vous connecter pour publier un commentaire.
La première chose que vous devez savoir, c'est que vous essayez de créer une Applet à l'aide de AWT ou Swing composants. Vous importez les classes Swing, mais sont à l'aide de composants AWT. La plupart des gens ces jours-ci l'utilisation de Swing.
Dans votre Swing ne serait jamais remplacer la peinture() de l'Applet. Vous commencerez par l'extension de JApplet, alors vous pouvez tout simplement ajouter des composants de la fenêtre de l'applet. Si vous avez besoin de faire de la peinture custom, alors vous n'avez qu'en remplaçant le paintComponent() la méthode de JComponent ou Composite.
De commencer par lire le Swing tutoriel pour des exemples de l'utilisation d'applets.
Vous utilisez
java.awt.Button
. Il n'y a pas desetText()
méthode en java.awt.Bouton. Vous pouvez utilisersetLabel(String)
à la place.Et vous n'avez pas à importer java.lang.* depuis les java.lang package est disponible pour tous vos programmes Java par défaut.
Si vous modifiez la ligne:
à
et
à
alors vous allez être en utilisant le Swing Bouton et vous serez en mesure d'appeler setText();
Comme vous l'avez dit que vous voulez échanger le texte, alors vous devriez utiliser la méthode setLabel() au lieu de setText, mais pour changer le texte d'un Label, alors vous pouvez utiliser la setText() la méthode.