Java: Problem mit setText () - Methode mit Knopf
Ich bin neu in java und versuche ich zu tauschen, den text auf einer Schaltfläche, die ich angelegt habe. Der code für meine main Klasse ist wie folgt:
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());
}
}
Ich versuche zu ändern, um text in meiner actionPerformed(ActionEvent e) - Methode. Wie ich schon sagte, ich bin neu hier, also bitte sanft. Danke 🙂
- Es gibt zu viel überflüssigen code in deinem Beispiel, und es ist schlecht formatiert. Bitte erstellen Sie einen einfachen Testfall, der zeigt das problem!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das erste, was Sie wissen müssen, werden Sie versuchen, erstellen Sie ein Applet mit AWT oder Swing Komponenten. Importieren Sie die Swing-Klassen sind aber mit AWT-Komponenten. Die meisten Menschen in diesen Tagen mit Swing.
In Schwingen Sie Ihre würde nie überschreiben der paint () - Methode des Applets. Sie würde anfangen, durch die Erweiterung JApplet, dann würden Sie fügen Sie einfach die Komponenten, um die content-pane des Applets. Wenn Sie tun müssen, um benutzerdefinierte malen dann Sie können tun, dass durch überschreiben der paintComponent () - Methode einer JComponent oder JPanel.
Start durch das Lesen der Swing-tutorial für die Arbeit Beispiele für die Verwendung von applets.
Sind Sie mit
java.awt.Button
. Es gibt keinesetText()
- Methode in der java.das awt.- Taste. Sie dürfensetLabel(String)
statt.Und Sie nicht haben, zu importieren java.lang.* entweder, da das java.lang-Paket ist verfügbar, um alle Ihre Java-Programme standardmäßig.
Wenn Sie die Zeile ändern:
zu
und
zu
dann verwenden Sie die Swing-Taste und Sie werden in der Lage, rufen Sie setText();
Als Sie sagte, dass Sie tauschen wollen, der text wird dann sollten Sie die setLabel () - Methode statt setText, aber zum ändern der text eines Etiketts verwenden können dann Sie die setText () - Methode.