java – 如何动态更改JLabel

我有一个JLabel和一个按钮,JLabel显示按下按钮的次数,但是,我无法计算如何更新显示按钮按下次数的JLabel.
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class SimpleGui {
   private JFrame f = new JFrame("Basic GUI"); // create Frame
   int pressed = 0; // tracks number of button presses.
   JLabel label1 = new JLabel("You have pressed button " + pressed + "times.");
   private JButton start = new JButton("Click To Start!");

   public SimpleGui() {
      // Setup Main Frame
      f.getContentPane().setLayout(new GridLayout(0,1));
      start.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            calculate();
         }
      });
      // Add components
      f.add(label1);
      f.add(start);
      // Allows the Swing App to be closed
      f.addWindowListener(new ListenCloseWdw());
   }

   public class ListenMenuQuit implements ActionListener {
      public void actionPerformed(ActionEvent e) {
         System.exit(0);
      }
   }

   public class ListenCloseWdw extends WindowAdapter {
      public void windowClosing(WindowEvent e) {
         System.exit(0);
      }
   }

   public void launchFrame() {
      // display Frame
      f.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
      f.pack(); // Adjusts panel to components for display
      f.setVisible(true);
   }

   public static void main(String args[]) {
      PrimeTime gui = new PrimeTime();
      gui.launchFrame();
   }

   public void calculate() {
      pressed++;
      label1 = new JLabel("You have pressed button " + pressed + "times.");
      // update the GUI with new jLabel
      f.repaint();
   }
}

解决方法

问题是您正在创建一个未在面板中显示的新的不同JLabel.

public void calculate(){
   pressed++;
   this.label1.setText("You have pressed button " + pressed + "times.");
}

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...