Java:使用带有按钮的setText()方法时出现问题
我是java新手,我正在尝试交换我创建的按钮上的文本。我的主类的代码如下:Java:使用带有按钮的setText()方法时出现问题,java,button,applet,Java,Button,Applet,我是java新手,我正在尝试交换我创建的按钮上的文本。我的主类的代码如下: 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
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());
}
}
我试图在actionPerformed(ActionEvent e)方法中更改为文本。就像我说的,我是新来的,所以请温柔一点。谢谢:)您正在使用
java.awt.Button
。java.awt.Button中没有setText()
方法。您可以改用setLabel(String)
而且您也不必导入java.lang.*,因为默认情况下,java.lang包可用于所有java程序
如果更改行:
Button BtnStart;
到
及
到
然后您将使用Swing按钮,并可以调用setText() 您正在使用
java.awt.Button
。java.awt.Button中没有setText()
方法。您可以改用setLabel(String)
而且您也不必导入java.lang.*,因为默认情况下,java.lang包可用于所有java程序
如果更改行:
Button BtnStart;
到
及
到
然后您将使用Swing按钮,并可以调用setText() 您需要知道的第一件事是您是否正在尝试使用AWT或Swing组件创建小程序。您导入了Swing类,但使用的是AWT组件。现在大多数人都使用Swing 在Swing中,您永远不会覆盖小程序的paint()方法。您可以从扩展JApplet开始,然后简单地将组件添加到applet的内容窗格中。如果需要进行自定义绘制,那么可以通过重写JComponent或JPanel的paintComponent()方法来完成
从阅读Swing教程开始,了解使用小程序的工作示例。首先需要知道的是,您是否正在尝试使用AWT或Swing组件创建小程序。您导入了Swing类,但使用的是AWT组件。现在大多数人都使用Swing 在Swing中,您永远不会覆盖小程序的paint()方法。您可以从扩展JApplet开始,然后简单地将组件添加到applet的内容窗格中。如果需要进行自定义绘制,那么可以通过重写JComponent或JPanel的paintComponent()方法来完成
从阅读Swing教程开始,了解使用小程序的工作示例。如您所说,要交换文本,则应使用setLabel()方法而不是setText,但要更改标签的文本,则可使用setText()方法。如您所说,要交换文本,则应使用setLabel()方法而不是setText,但是要更改标签的文本,可以使用setText()方法。示例中有太多无关的代码,而且格式不正确。请创建一个显示问题的简单测试用例!您的示例中有太多无关的代码,而且格式不正确。请创建一个显示问题的简单测试用例!
BtnStart = new Button("add row/column");
BtnStart = new JButton("add row/column");