2
  @Override
  public void actionPerformed(ActionEvent e) {
      if (e.getSource() == thirdBtn) {
          //System.out.println("Third Button Click");
          System.out.println(e.getSource()+" Click");
      }
  }

上記のコードでは、これを行う代わりに、次のことを行うのではないかと考えていました。

//System.out.println("Third Button Click");

私がこのようなことをすることができれば:

System.out.println(e.getSource()+" Click");

ただし、コードは次のように出力します。

BlackJack.OverBoard$BlackJackButton[,440,395,100x25,alignmentX=0.0,alignmentY=0.5,
    border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@7a3d8738,
    flags=16777504,maximumSize=,minimumSize=,preferredSize=,
    defaultIcon=,disabledIcon=,disabledSelectedIcon=,
    margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],
    paintBorder=false,paintFocus=true,
    pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,
    text=Change,defaultCapable=true] Click

JButtonこれは必要ありません。名前を取得してクリックして出力する方法を知りたいです。

編集:

混乱している人もいます。私が「名前」と言うとき(多分それは間違った言葉です)、私はあなたが初期化すると言うことを意味しましたJButton

JButton btnExample = new JButton();

btnExampleボタンをクリックするとコンソールに出力されるようにしたいと思います。

4

2 に答える 2

11

JComponentsのみがキャストとしてe.getSource()使用する戻り値になることがわかっている場合JComponentは、柔軟性が高くなるため、JComponentにキャストできます。のみを使用している場合はJButtons、代わりに安全にキャストできますJButton

  @Override
            public void actionPerformed(ActionEvent e) {
                if (e.getSource() == thirdBtn) {
                    //System.out.println("Third Button Click");
                    System.out.println(((JComponent) e.getSource()).getName()+" Click");
                }
            }

正確に必要なものに応じて、お気軽にに置き換えgetName()てください。getText()

また、==演算子はオブジェクト参照を比較するためにのみ使用する必要があるため、最初からJComponentにキャストし.equals()、名前またはテキストで使用することを検討してください。

編集変数 の名前を出力することはできませんが、JComponentの名前/テキストを設定することはできます。例えば

JButton btnExample = new JButton();
btnExample.setName("btnExample");

または、「btnExample」を実際にボタンに表示する場合は、次のようにします。

JButton btnExample = new JButton();
btnExample.setText("btnExample");
于 2013-01-14T01:40:49.593 に答える
6
System.out.println(((JButton) e.getSource()).getName() + " Click");
于 2013-01-14T01:39:51.170 に答える