Java 如何重置jframe并从jtextfield保存文本

Java 如何重置jframe并从jtextfield保存文本,java,swing,jframe,jtextfield,Java,Swing,Jframe,Jtextfield,我想写一个小程序。程序应运行的循环数已定义。用户在Jtextfield中插入文本。每次用户点击enter,一个周期被计数,相同的JFrame将被再次创建。重复此步骤,直到达到最大循环次数。程序应创建另一个Jframe。我试图编写代码,但程序没有增加循环数 public class oneJFrame extends javax.swing.JFrame { private int Cycles = 0; public oneJFrame() {

我想写一个小程序。程序应运行的循环数已定义。用户在Jtextfield中插入文本。每次用户点击enter,一个周期被计数,相同的JFrame将被再次创建。重复此步骤,直到达到最大循环次数。程序应创建另一个Jframe。我试图编写代码,但程序没有增加循环数

public class oneJFrame extends javax.swing.JFrame {

    private int Cycles = 0;
    
    
    public oneJFrame() {
        initComponents();
    }                    

    private void clsWinBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        dispose();
    }                                         

    protected void playerNameFieldActionPerformed(java.awt.event.ActionEvent evt) {                                                
        // TODO add your handling code here:
        if (Cycles <= 4) {
            System.out.println(Cycles );
            dispose();
            oneJFrame JFrame1 = new oneJFrame();
            JFrame1.setVisible(true);
            Cycles++;
        } else {
            anotherJFrame Jframe2 = new anotherJFrame ();
            Jframe2.setVisible(true);
        }
        
  
    } 
公共类oneJFrame扩展了javax.swing.JFrame{
私有整数周期=0;
公共oneJFrame(){
初始化组件();
}                    
私有void clsWinBtnActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:
处置();
}                                         
受保护的无效playerNameFieldActionPerformed(java.awt.event.ActionEvent evt){
//TODO在此处添加您的处理代码:

如果发生(周期这是因为当您创建新的
OneFrame
时,新的
Cycles
已创建并自动等于0。 要解决此问题,请将变量
Cycles
更改为
static
,这样,您将创建的每个
OneFrame
都有一个变量,并且不会在每次创建新的
OneFrame
时重置为0。 例如,使用:

private static int Cycles = 0;
而不是:

private int Cycles = 0;

不要一直创建新的帧。只需刷新帧上显示的每个周期的数据。然后您可以保留实例变量来跟踪周期数。首先,是什么让您认为需要创建新的JFrame?通过这样做,您实际上想实现什么?其次,需要创建一系列新的JFrame对象在你的例子中,你的第二个JFrame总是被称为JFrame2,这意味着你不是在制作新的JFrame,而是在替换它们,因为你一直在重复使用相同的名称。最好重新考虑你的方法,因为你选择的不会有回报。请选择java命名约定