私は Java の初心者で、最終的にはシニア プロジェクト用に作成しているロボットのコードを作成したいと考えています。ロボットが指定されたパターンでドミノを組み立てて倒す予定です。最初に、グリッドに配置するドミノを選択できるプログラムを作成する必要があります。次に、プログラムにArduino用の新しいプログラムを出力させることを計画しています。
テストと学習として、JButton を使用して 20x40 グリッドを作成したいと思います。次に、いくつかの Jbutton をクリックして、Jbutton の値を新しい配列に追加します。元。1 番目、5 番目、30 番目、799 番目のボタンをクリックします。次に、プログラムはそれらを新しい配列 where などに追加しarray[0]=1
ますarray[2]=5;
。
私は何時間もかけて試行錯誤し、オンラインで検索してこのコードを見つけました。現在の問題は、Buttongrid メソッドをスキップしているように見えることです (?)。メソッドを public static void main (String [] args){ にすると、アクション リスナーが機能しません。
繰り返しますが、私はまだ始めたばかりなので、多くのことが間違っていても驚かないでしょう。それを見て、私が何を修正しなければならないかを理解するのを手伝ってください。ありがとう
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Arrays;
public class ButtonGrid extends JFrame implements ActionListener {
static int clicked[]=new int[800];
static JButton button[]=new JButton[800];
static int x;
static int count=0;
int value;
ActionListener listen;
public ButtonGrid() {
JFrame frame= new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
GridLayout grid=new GridLayout(20,40);
frame.setLayout(grid);
//fill clicked with 0s////////////////////////////////////
for (int c=0;c<=10;c++){
clicked[c]=0;}
for(x=0;x<800;x++){
button[x]= new JButton();
button[x].setActionCommand(Integer.toString(x));
frame.add(button[x]);
button[x].addActionListener(this);
}}
public void actionPerformed (ActionEvent e){
while(count<11){
int newvalue=value;
value=Integer.parseInt( e.getActionCommand());
if(value!=newvalue){
clicked[count]=this.value;
count=count+1;
System.out.println("Found");
}
else{
newvalue=value;
System.out.println("Looking...");}}
} public static void main(String [] args){
ButtonGrid b=new ButtonGrid();
if (count>10){
for (int t=0;t<=11;t++){
System.out.println(clicked[t]);
}
}
}
}