2017-07-26 10 views
0

四角形にフラグを立てようとしているときに問題に遭遇したとき、私はmineSweeperゲームで作業していました。私はコードを使用していますJavaでJButtonの1つの要素を取得する

if (SwingUtilities.isRightMouseButton(e)) { 
       int clickedTile = e.getButton(); 
       bombNum.setText(""+userMineNum); 
       //flagTile(clickedTile); 
      } 

JButtonの番号にアクセスしようとします。しかし、これは常にclickedTileの値が3になるようにします(JButtonの配列なので、複数回は不可能です)。とにかく、私は、全体のオブジェクトを取得しますe.getSource()、に見えた、と私はオブジェクトのためにそれをプリントアウトした場合、それはなるだろう:重要なフィールドが「テキスト」であると

javax.swing.JButton[,221,124,44x31,alignmentX=0.0,alignmentY=0.5,border=,flags=288,maximumSize=,minimumSize=,preferredSize=,defaultIcon=resources/0.png,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],paintBorder=false,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text= ,defaultCapable=true] 

(ました私は後で変更することができますが、今は空白です)。私はそれをアクセスする方法を知りたいので、適切な場所にフラグを設定するために値を保存することができます。

e.getSource().text 

動作しません。

ご協力いただければ幸いです。おかげさまで

答えて

2

e.getButton()は、マウスのどのボタンがクリックされているかを示します。あなたの場合は右のいずれか、または数3.それ以外

、私はあなたがボタンを行うためのテキストを得ることができると信じて:

((JButton) e.getSource()).getName() 

または

((JButton) e.getSource()).getText() 

しかし、私は思いますそれが他のコンポーネントではなくクリックされているボタンであることを強く確認することを強くお勧めします。

+0

ありがとうございます! –

関連する問題