这里是新手程序员:
我刚刚制作了第一个按钮。我想要按钮更改标签“Hello World!”到“你好宇宙!”。我尝试通过 public void actionPerformed(ActionEvent e)
寻找更改标签的方法,但未能找到任何方法。如果有人愿意向我解释如何更改 public void actionPerformed(ActionEvent e)
中的注释部分来更改标签,请解释一下!
谢谢!
我的代码:
package game;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Javagame extends JPanel implements ActionListener{
double x=Math.random()*500;
double y=Math.random()*500;
protected JButton b1;
public Javagame() {
b1 = new JButton("Button!");
b1.setActionCommand("change");
b1.addActionListener(this);
add(b1);
}
public void actionPerformed(ActionEvent e) {
if ("change".equals(e.getActionCommand())) {
//I want a code here that changes "Hello World" to "Hello Universe". Thank you.
}
}
private static void createWindow(){
JFrame frame = new JFrame("Javagame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(500,500));
JLabel label = new JLabel("Hello World!", SwingConstants.CENTER);
label.setFont(new Font("Arial", Font.BOLD, 20));
label.setForeground(new Color(0x009900));
Javagame newContentPane = new Javagame();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
createWindow();
}
}
最佳答案
那是因为您无法获取对标签的引用来更改它......
将标签的减速度移动到类级别...
public class Javagame extends JPanel implements ActionListener{
double x=Math.random()*500;
double y=Math.random()*500;
protected JButton b1;
// Add me...
private JLabel label;
将标签移动到面板中
public Javagame() {
b1 = new JButton("Button!");
b1.setActionCommand("change");
b1.addActionListener(this);
add(b1);
// Move me here
label = new JLabel("Hello World!", SwingConstants.CENTER);
label.setFont(new Font("Arial", Font.BOLD, 20));
label.setForeground(new Color(0x009900));
add(label);
}
然后在您的 actionPerformed
方法中您将能够引用它...
public void actionPerformed(ActionEvent e) {
if ("change".equals(e.getActionCommand())) {
label.setText("I have changed");
}
}
关于java - 通过按钮更改标签(Java/Swing 问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848311/