如何在Java中多次使用重绘?不断将值更改为-1

如何在Java中多次使用重绘?不断将值更改为-1,java,repaint,Java,Repaint,我正在尝试用Java创建一个简单的Nim游戏。在游戏中,2名用户轮流拿走1、2或3组弹珠。我想用圆圈来添加大理石的图形表示,但一旦我添加了repaint();对于每个按钮,剩余弹珠的值将更改为-1。是否有其他方法来执行此操作,或者有其他方法使其正确执行?任何帮助或建议都将不胜感激 import java.awt.Color; import java.awt.Graphics; import javax.swing.JOptionPane; /* * To change this licens

我正在尝试用Java创建一个简单的Nim游戏。在游戏中,2名用户轮流拿走1、2或3组弹珠。我想用圆圈来添加大理石的图形表示,但一旦我添加了repaint();对于每个按钮,剩余弹珠的值将更改为-1。是否有其他方法来执行此操作,或者有其他方法使其正确执行?任何帮助或建议都将不胜感激

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JOptionPane;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Renae
 */

public class GUINim extends javax.swing.JFrame {

    Player player1 = new Player("name1");
    Player player2 = new Player("name2");
    Pile gamePile = new Pile(0);


    int xPosition = 95, yPosition = 90;

        public void paint( Graphics g )
        {
        super.paint( g );
        gamePile.drawPile(g, xPosition, yPosition);
        }


    /**
     * Creates new form GUINim
     */
    public GUINim() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jTextField3 = new javax.swing.JTextField();
        jPanel1 = new javax.swing.JPanel();
        jPanel2 = new javax.swing.JPanel();
        jDesktopPane1 = new javax.swing.JDesktopPane();
        jFrame1 = new javax.swing.JFrame();
        jFrame2 = new javax.swing.JFrame();
        jOptionPane1 = new javax.swing.JOptionPane();
        take1Player1Button = new javax.swing.JButton();
        take2Player1Button = new javax.swing.JButton();
        take3Player1Button = new javax.swing.JButton();
        take1Player2Button = new javax.swing.JButton();
        take2Player2Button = new javax.swing.JButton();
        take3Player2Button = new javax.swing.JButton();
        name1Label = new javax.swing.JLabel();
        name2Label = new javax.swing.JLabel();
        numberOfMarblesLeftLabel = new javax.swing.JLabel();
        newGameButton = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        moveHistoryTextArea = new javax.swing.JTextArea();

        jTextField3.setText("jTextField3");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jDesktopPane1Layout = new javax.swing.GroupLayout(jDesktopPane1);
        jDesktopPane1.setLayout(jDesktopPane1Layout);
        jDesktopPane1Layout.setHorizontalGroup(
            jDesktopPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jDesktopPane1Layout.setVerticalGroup(
            jDesktopPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jFrame1Layout = new javax.swing.GroupLayout(jFrame1.getContentPane());
        jFrame1.getContentPane().setLayout(jFrame1Layout);
        jFrame1Layout.setHorizontalGroup(
            jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jFrame1Layout.setVerticalGroup(
            jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jFrame2Layout = new javax.swing.GroupLayout(jFrame2.getContentPane());
        jFrame2.getContentPane().setLayout(jFrame2Layout);
        jFrame2Layout.setHorizontalGroup(
            jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        jFrame2Layout.setVerticalGroup(
            jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        take1Player1Button.setText("Take 1");
        take1Player1Button.setEnabled(false);
        take1Player1Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                take1Player1ButtonActionPerformed(evt);
            }
        });

        take2Player1Button.setText("Take 2");
        take2Player1Button.setEnabled(false);
        take2Player1Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                take2Player1ButtonActionPerformed(evt);
            }
        });

        take3Player1Button.setText("Take 3");
        take3Player1Button.setEnabled(false);
        take3Player1Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                take3Player1ButtonActionPerformed(evt);
            }
        });

        take1Player2Button.setText("Take 1");
        take1Player2Button.setEnabled(false);
        take1Player2Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                take1Player2ButtonActionPerformed(evt);
            }
        });

        take2Player2Button.setText("Take 2");
        take2Player2Button.setEnabled(false);
        take2Player2Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                take2Player2ButtonActionPerformed(evt);
            }
        });

        take3Player2Button.setText("Take 3");
        take3Player2Button.setEnabled(false);
        take3Player2Button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                take3Player2ButtonActionPerformed(evt);
            }
        });

        name1Label.setText("Name 1");

        name2Label.setText("Name 2");

        numberOfMarblesLeftLabel.setText("display # left here");

        newGameButton.setText("New Game");
        newGameButton.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                newGameButtonActionPerformed(evt);
            }
        });

        moveHistoryTextArea.setColumns(20);
        moveHistoryTextArea.setRows(5);
        jScrollPane2.setViewportView(moveHistoryTextArea);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(take3Player1Button)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(take3Player2Button))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addComponent(take2Player1Button)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(take2Player2Button))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(name1Label, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(take1Player1Button, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 79, Short.MAX_VALUE)
                        .addComponent(numberOfMarblesLeftLabel)
                        .addGap(38, 38, 38)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(take1Player2Button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(name2Label, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addComponent(jScrollPane2))
                .addContainerGap())
            .addGroup(layout.createSequentialGroup()
                .addGap(161, 161, 161)
                .addComponent(newGameButton)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(name1Label)
                            .addComponent(name2Label)
                            .addComponent(numberOfMarblesLeftLabel))
                        .addGap(33, 33, 33)
                        .addComponent(take1Player1Button))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(69, 69, 69)
                        .addComponent(take1Player2Button)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(take2Player1Button)
                    .addComponent(take2Player2Button))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(take3Player1Button)
                    .addComponent(take3Player2Button))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 183, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(newGameButton)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    private void take1Player2ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        gamePile.remove(1);
        numberOfMarblesLeftLabel.setText(Integer.toString(gamePile.getSize()));
        moveHistoryTextArea.append(player2.getName() + " has removed 1 marble from the pile.\n\nIt's " + player1.getName() 
                + "'s turn.\n There are " + gamePile.getSize() + " marbles remaining.\n");
        if(gamePile.getSize() == 0)
        {
            moveHistoryTextArea.append(player2.getName() + " has won!!!");
        }
        take1Player2Button.setEnabled(false);
        take2Player2Button.setEnabled(false);
        take3Player2Button.setEnabled(false);
        take1Player1Button.setEnabled(true);
        take2Player1Button.setEnabled(true);
        take3Player1Button.setEnabled(true);
        if(gamePile.getSize() < 3)
        {
            take3Player1Button.setEnabled(false);
        }
        if(gamePile.getSize() < 2)
        {
            take2Player1Button.setEnabled(false);
        }
        if(gamePile.getSize() < 1)
        {
            take1Player1Button.setEnabled(false);
        }

        repaint();
    }                                                  

    private void take1Player1ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        gamePile.remove(1);
        numberOfMarblesLeftLabel.setText(Integer.toString(gamePile.getSize()));
        moveHistoryTextArea.append(player1.getName() + " has removed 1 marble from the pile.\n\nIt's " + player2.getName() 
                + "'s turn.\n There are " + gamePile.getSize() + " marbles remaining.\n");
        if(gamePile.getSize() == 0)
        {
            moveHistoryTextArea.append(player1.getName() + " has won!!!");
        }
        take1Player1Button.setEnabled(false);
        take2Player1Button.setEnabled(false);
        take3Player1Button.setEnabled(false);
        take1Player2Button.setEnabled(true);
        take2Player2Button.setEnabled(true);
        take3Player2Button.setEnabled(true);
        if(gamePile.getSize() < 3)
        {
            take3Player2Button.setEnabled(false);
        }
        if(gamePile.getSize() < 2)
        {
            take2Player2Button.setEnabled(false);
        }
        if(gamePile.getSize() < 1)
        {
            take1Player2Button.setEnabled(false);
        }

        repaint();
    }                                                  

    private void take2Player1ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        gamePile.remove(2);
        numberOfMarblesLeftLabel.setText(Integer.toString(gamePile.getSize()));
        moveHistoryTextArea.append(player1.getName() + " has removed 2 marbles from the pile.\n\nIt's " + player2.getName() 
                + "'s turn.\n There are " + gamePile.getSize() + " marbles remaining.\n");
        if(gamePile.getSize() == 0)
        {
            moveHistoryTextArea.append(player1.getName() + " has won!!!");
        }
        take1Player1Button.setEnabled(false);
        take2Player1Button.setEnabled(false);
        take3Player1Button.setEnabled(false);
        take1Player2Button.setEnabled(true);
        take2Player2Button.setEnabled(true);
        take3Player2Button.setEnabled(true);
        if(gamePile.getSize() < 3)
        {
            take3Player2Button.setEnabled(false);
        }
        if(gamePile.getSize() < 2)
        {
            take2Player2Button.setEnabled(false);
        }
        if(gamePile.getSize() < 1)
        {
            take1Player2Button.setEnabled(false);
        }
        repaint();
    }                                                  

    private void take2Player2ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        gamePile.remove(2);
        numberOfMarblesLeftLabel.setText(Integer.toString(gamePile.getSize()));
        moveHistoryTextArea.append(player2.getName() + " has removed 2 marbles from the pile.\n\nIt's " + player1.getName() 
                + "'s turn.\n There are " + gamePile.getSize() + " marbles remaining.\n");
        if(gamePile.getSize() == 0)
        {
            moveHistoryTextArea.append(player2.getName() + " has won!!!");
        }
        take1Player2Button.setEnabled(false);
        take2Player2Button.setEnabled(false);
        take3Player2Button.setEnabled(false);
        take1Player1Button.setEnabled(true);
        take2Player1Button.setEnabled(true);
        take3Player1Button.setEnabled(true);
        if(gamePile.getSize() < 3)
        {
            take3Player1Button.setEnabled(false);
        }
        if(gamePile.getSize() < 2)
        {
            take2Player1Button.setEnabled(false);
        }
        if(gamePile.getSize() < 1)
        {
            take1Player1Button.setEnabled(false);
        }
        repaint();
    }                                                  

    private void take3Player1ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        gamePile.remove(3);
        numberOfMarblesLeftLabel.setText(Integer.toString(gamePile.getSize()));
        moveHistoryTextArea.append(player1.getName() + " has removed 3 marbles from the pile.\n\nIt's " + player2.getName() 
                + "'s turn.\n There are " + gamePile.getSize() + " marbles remaining.\n");
        if(gamePile.getSize() == 0)
        {
            moveHistoryTextArea.append(player1.getName() + " has won!!!");
        }
        take1Player1Button.setEnabled(false);
        take2Player1Button.setEnabled(false);
        take3Player1Button.setEnabled(false);
        take1Player2Button.setEnabled(true);
        take2Player2Button.setEnabled(true);
        take3Player2Button.setEnabled(true);
        if(gamePile.getSize() < 3)
        {
            take3Player2Button.setEnabled(false);
        }
        if(gamePile.getSize() < 2)
        {
            take2Player2Button.setEnabled(false);
        }
        if(gamePile.getSize() < 1)
        {
            take1Player2Button.setEnabled(false);
        }
        repaint();
    }                                                  

    private void take3Player2ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   
        // TODO add your handling code here:
        gamePile.remove(3);
        numberOfMarblesLeftLabel.setText(Integer.toString(gamePile.getSize()));
        moveHistoryTextArea.append(player2.getName() + " has removed 3 marbles from the pile.\n\nIt's " + player1.getName() 
                + "'s turn.\n There are " + gamePile.getSize() + " marbles remaining.\n");
        if(gamePile.getSize() == 0)
        {
            moveHistoryTextArea.append(player2.getName() + " has won!!!");
        }
        take1Player2Button.setEnabled(false);
        take2Player2Button.setEnabled(false);
        take3Player2Button.setEnabled(false);
        take1Player1Button.setEnabled(true);
        take2Player1Button.setEnabled(true);
        take3Player1Button.setEnabled(true);
        if(gamePile.getSize() < 3)
        {
            take3Player1Button.setEnabled(false);
        }
        if(gamePile.getSize() < 2)
        {
            take2Player1Button.setEnabled(false);
        }
        if(gamePile.getSize() < 1)
        {
            take1Player1Button.setEnabled(false);
        }
        repaint();
    }                                                  

    private void newGameButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        String player1Name = JOptionPane.showInputDialog(null, "Please enter the first player's name.");
        player1.setName(player1Name);
        String player2Name = JOptionPane.showInputDialog(null, "Please enter the second player's name.");
        player2.setName(player2Name);
        String sizeOfPile = JOptionPane.showInputDialog(null, "Enter the size of the pile to start with.");
        name1Label.setText(player1Name);
        name2Label.setText(player2Name);
        numberOfMarblesLeftLabel.setText(sizeOfPile);
        int initialCount = Integer.parseInt(sizeOfPile);
        gamePile.setSize(initialCount);
        moveHistoryTextArea.append("It's " + player1.getName() + "'s turn.\n");
        take1Player2Button.setEnabled(false);
        take2Player2Button.setEnabled(false);
        take3Player2Button.setEnabled(false);
        take1Player1Button.setEnabled(true);
        take2Player1Button.setEnabled(true);
        take3Player1Button.setEnabled(true);

        repaint();
    }                                             

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(GUINim.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(GUINim.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(GUINim.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(GUINim.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new GUINim().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JDesktopPane jDesktopPane1;
    private javax.swing.JFrame jFrame1;
    private javax.swing.JFrame jFrame2;
    private javax.swing.JOptionPane jOptionPane1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextArea moveHistoryTextArea;
    private javax.swing.JLabel name1Label;
    private javax.swing.JLabel name2Label;
    private javax.swing.JButton newGameButton;
    private javax.swing.JLabel numberOfMarblesLeftLabel;
    private javax.swing.JButton take1Player1Button;
    private javax.swing.JButton take1Player2Button;
    private javax.swing.JButton take2Player1Button;
    private javax.swing.JButton take2Player2Button;
    private javax.swing.JButton take3Player1Button;
    private javax.swing.JButton take3Player2Button;
    // End of variables declaration                   
}
导入java.awt.Color;
导入java.awt.Graphics;
导入javax.swing.JOptionPane;
/*
*要更改此许可证标题,请在“项目属性”中选择“许可证标题”。
*要更改此模板文件,请选择工具|模板
*然后在编辑器中打开模板。
*/
/**
*
*@作者Renae
*/
公共类GUINim扩展了javax.swing.JFrame{
玩家玩家1=新玩家(“名称1”);
Player player2=新玩家(“名称2”);
桩号=新桩号(0);
int xPosition=95,yPosition=90;
公共空间涂料(图g)
{
超级油漆(g);
gamePile.drawPile(g、X位置、Y位置);
}
/**
*创建新表单GUINim
*/
公共基尼姆(){
初始化组件();
}
/**
*从构造函数中调用此方法来初始化表单。
*警告:不要修改此代码。此方法的内容始终为
*由表单编辑器重新生成。
*/
@抑制警告(“未选中”)
//                           
私有组件(){
jTextField3=newjavax.swing.JTextField();
jPanel1=newjavax.swing.JPanel();
jPanel2=newjavax.swing.JPanel();
jDesktopPane1=newjavax.swing.JDesktopPane();
jFrame1=newjavax.swing.JFrame();
jFrame2=newjavax.swing.JFrame();
jOptionPane1=newjavax.swing.JOptionPane();
take1Player1Button=newjavax.swing.JButton();
take2Player1Button=newjavax.swing.JButton();
take3Player1Button=newjavax.swing.JButton();
take1Player2Button=newjavax.swing.JButton();
take2Player2Button=newjavax.swing.JButton();
take3Player2Button=newjavax.swing.JButton();
name1Label=newjavax.swing.JLabel();
name2Label=newjavax.swing.JLabel();
numberOfMarblesLeftLabel=newjavax.swing.JLabel();
newGameButton=newjavax.swing.JButton();
jScrollPane2=newjavax.swing.JScrollPane();
moveHistoryTextArea=newjavax.swing.JTextArea();
setText(“jTextField3”);
javax.swing.GroupLayout jPanel1Layout=新的javax.swing.GroupLayout(jPanel1);
setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,100,短。最大值)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,100,短。最大值)
);
javax.swing.GroupLayout jPanel2Layout=新的javax.swing.GroupLayout(jPanel2);
设置布局(jPanel2布局);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,100,短。最大值)
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,100,短。最大值)
);
javax.swing.GroupLayout jDesktopPane1Layout=newjavax.swing.GroupLayout(jDesktopPane1);
设置布局(jDesktopPane1Layout);
jDesktopPane1Layout.setHorizontalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,100,短。最大值)
);
jDesktopPane1Layout.setVerticalGroup(
createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,100,短。最大值)
);
javax.swing.GroupLayout jFrame1Layout=newjavax.swing.GroupLayout(jFrame1.getContentPane());
jFrame1.getContentPane().setLayout(jFrame1Layout);
jFrame1Layout.setHorizontalGroup(
jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,400,短。最大值)
);
jFrame1Layout.setVerticalGroup(
jFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,300,短。最大值)
);
javax.swing.GroupLayout jFrame2Layout=newjavax.swing.GroupLayout(jFrame2.getContentPane());
jFrame2.getContentPane().setLayout(jFrame2Layout);
jFrame2Layout.setHorizontalGroup(
jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,400,短。最大值)
);
jFrame2Layout.setVerticalGroup(
jFrame2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0,300,短。最大值)
);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
take1Player1Button.setText(“take1”);
take1Player1Button.setEnabled(false);
take1Player1Button.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行1层1按钮操作(evt);
}
});
take2Player1Button.setText(“take2”);
take2Player1Button.setEnabled(false);
take2Player1Button.addActionListener(新java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
执行2层1按钮操作(evt);
}
});
take3Player1Button.setText(“take3”);