初心者のJavaクラスでこのシモンゲームを終わらせる必要があります。基本的には、ゲームのプレイを開始するには、トップラベル "R"、 "B"、 "Y"または "G"の3色の文字をランダムにする必要があります。プレイヤーはこの順番で色を押しますが、正しい場合は間違っていると別の文字/色が追加されて失われます。私はゲームの主な部分を色を含む設定している...私は苦労しているのは、ボトムラベルにプッシュされたボタンの文字を印刷し、また3をランダム化するトップラベルを取得することです。私は、ボタンが押されたときにトップのラベルにランダムな文字を印刷するゲームを手に入れることができますが、これは自分自身で始まります。 HEREJAVA Simon Game
はMY CODE IS:
//10/30/16
package simongame1;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.security.SecureRandom;
public class SimonGame1 extends JFrame implements ActionListener
{
public SecureRandom rand;
public String randomLetters="";
JButton[] numberButtons = new JButton[4];
JPanel numberButtonPanel = new JPanel();
JLabel labelTop;
JLabel labelBottom;
String messageTop = "";
String messageBottom = "";
JButton red;
JButton green;
JButton yellow;
JButton blue;
public final String letters= "RGBY";
public JLabel labelDisplay;
//constructor?
public SimonGame1()
{
super("Simon Game!");
labelDisplay = new JLabel ("");
setLayout(new BorderLayout());
red = new JButton();
green = new JButton();
blue = new JButton();
yellow = new JButton();
labelTop = new JLabel("");
//getRandomLetter();
labelBottom = new JLabel("");
//System.out.print (randomLetters);
rand = new SecureRandom();
numberButtons = new JButton[4];
numberButtonPanel = new JPanel();
numberButtonPanel.setLayout(new GridLayout(3,3));
for(int i = 0; i < 0; i++)
{
numberButtons[i] = new JButton();
numberButtonPanel.add(numberButtons[i]);
numberButtons[i].addActionListener(this);
}
numberButtonPanel.add(red);
red.setBackground(Color.red);
red.addActionListener(this);
numberButtonPanel.add(blue);
blue.setBackground(Color.blue);
blue.addActionListener(this);
numberButtonPanel.add(yellow);
yellow.setBackground (Color.yellow);
yellow.addActionListener(this);
numberButtonPanel.add (green);
green.setBackground (Color.green);
green.addActionListener(this);
add(labelTop, BorderLayout.NORTH);
add(labelBottom, BorderLayout.SOUTH);
add(numberButtonPanel, BorderLayout.CENTER);
//if (messageTop = messageBottom)
}
// TODO code application logic here
@Override
public void actionPerformed(ActionEvent e)
{
rand = new SecureRandom();
randomLetters+= getRandomLetter();
labelTop.setText (randomLetters);
labelBottom.setText (letters);
System.out.println(e.getID());
if(e.getSource() == red)
{
System.out.println("R");
}
else if (e.getSource()==blue)
{
System.out.println ("B");
}
else if (e.getSource()==yellow)
{
System.out.println ("Y");
}
else if (e.getSource()==green)
{
System.out.println ("G");
}
}
public char getRandomLetter()
{
char randChar = letters.charAt(rand.nextInt (4));
return randChar;
}
}
、ここではテストです
package simongame1;
import javax.swing.JFrame;
public class NewClass {
public static void main(String[] args) {
{
SimonGame1 simpleFrame = new SimonGame1();
simpleFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
simpleFrame.setSize(300, 300);
simpleFrame.setVisible(true);
}
}
}
なぜ、このワンクリックBEHINDは何ですか?私は赤いボタンをクリックした場合、それは何も表示さdoenstが、それは最終的には「R」を印刷したときに、私は...赤thatsの後
labelBottom.setText (messageBottom);
**//WHY IS IT ONE LETTER BEHIND?**
System.out.println(e.getID());
if(e.getSource() == red)
{
messageBottom += "R";
//System.out.println("R");
}
else if (e.getSource()==blue)
{
messageBottom += "B";
//System.out.println ("B");
}
else if (e.getSource()==yellow)
{
messageBottom += "Y";
//System.out.println ("Y");
}
else if (e.getSource()==green)
{
messageBottom += "G";
//System.out.println ("G");
}
ヒント:私たちがあなたを助けるために時間を費やすことを望みます。だからできるだけ簡単にしてください。まずソースコードを適切に書式設定/インデントするのに必要な数分を費やすことで、私たちの非常に難しい混乱の代わりに!それから私は3回のようにあなたの説明を読んで、私はまだあなたの本当の問題がどこにあるか分からない。本当にシンプルな文章で試してみてください。見たいと思っているシークエンスの短い説明と、物事がうまくいかないところ。 – GhostCat
ラベルを初期化するときに、パネルに追加する前に、必要な文字でラベルを生成し、ラベルのテキストをそこに設定するだけです。あなたがそれを追加すると、あなたは確かにそこに文字を持っているでしょう。今は、actionPerformedメソッドが呼び出されたときにのみlabelTopのテキストを設定します。これは、ボタンが押されたときにのみ呼び出されます。 – Orin
@ Brittni77問題ありません!プログラミングを学び始めたのはずっと前のことだったので、それを続けてください。プログラミングには、多くの情熱とそれに興味を持ち続けるためのドライブが必要ですが、私の意見ではそれだけの価値があります。 – Orin