0

作成する必要がある学校の課題があります。以下に情報を示します: 0 から 9 までのラベルが付いた 10 個のボタンを持つフレームを作成します。プログラムを終了するには、ユーザーは 7-3-5 のように正しい 3 つのボタンを順番にクリックする必要があります。組み合わせを間違えると枠が赤くなります。

私はすでにフレームを完成させており、オンライン調査のボタンは役に立ちますが、機能を機能させることはできません. 私のコードを見て、事前に感謝してください。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ComboNumber extends JFrame implements ActionListener{

//variable declaration
int ans1 = 3;
int ans2 = 7;
int ans3 = 1;
int one, two, three;
String inData1, inData2, inData3;
JButton[] button;

//constructs the combolock object
public ComboNumber()
{
    //sets flowlayout
    getContentPane().setLayout(new FlowLayout());
    Container c = getContentPane();
    //creates buttons
    button = new JButton[10];
    for(int i = 0; i < button.length; ++i) {
        button[i] = new JButton("" + i);
        //adds buttons to the frame
        c.add(button[i]);
        //registers listeners with buttons
        button[i].addActionListener(this);
    }

    //sets commands for the buttons (useless)

    //sets title for frame
    setTitle("ComboLock");
}
//end combolock object

//listener object
public void actionPerformed(ActionEvent evt)
{
   Object o = evt.getSource();
   for(int i = 0; i < button.length; ++i) {
       if(button[i] == o) {
           // it is button[i] that was cliked
           // act accordingly
           return;
       }
   }
}
//end listener object

//main method
public static void main (String[] args)
{
    //calls object to format window
ComboNumber frm = new ComboNumber();

    //WindowQuitter class to listen for window closing
    WindowQuitter wQuit = new WindowQuitter();
    frm.addWindowListener(wQuit);

    //sets window size and visibility
    frm.setSize(500, 500);
    frm.setVisible(true);
}
//end main method
}
//end main class

//window quitter class
class WindowQuitter extends WindowAdapter
{
//method to close the window
public void windowClosing(WindowEvent e)
{
    //exits the program when the window is closed
    System.exit(0);
}
//end method
}
//end class
4

1 に答える 1

1

基本的な考え方は単純です。

2 つのことが必要です。

  1. 実際の組み合わせは
  2. ユーザーが推測したこと

そう。2 つの変数を追加する必要があります。1 つは組み合わせ/シークレットを含み、もう 1 つは推測を含みます。

private String secret = "123";
private String guess = "";

これにより、好きなだけ組み合わせを作ることができます;)

次に、actionPerformedメソッドで、最新のボタンクリックを推測に追加し、シークレットと照合して、適切な推測を行ったかどうかを確認する必要があります。推測の長さがシークレットの文字数を超える場合は、推測をリセットする必要があります。

public void actionPerformed(ActionEvent evt) {
    Object o = evt.getSource();
    if (o instanceof JButton) {
        JButton btn = (JButton) o;
        guess += btn.getText();
        if (guess.equals(secret)) {
            JOptionPane.showMessageDialog(this, "Welcome Overloard Master");
            dispose();
        } else if (guess.length() >= 3) {
            JOptionPane.showMessageDialog(this, "WRONG", "Wrong", JOptionPane.ERROR_MESSAGE);
            guess = "";
        }
    }
}
于 2013-03-18T05:01:33.077 に答える