0

私は本当に答えをいただければ幸いです:私はこれで生成されたいくつかのJButtonsを持っています:

for(int i = 0; i < buttons.length; i++){
        buttons[ i] = new JButton(blank);
        if(i == 3 || i == 6){
            newLine++;
            lineCount = 0;
        }
        buttons[ i].setBounds(lineCount*150,newLine*150,150,150);
        cont.add(buttons[ i]);
        buttons[ i].addActionListener(this);
        lineCount++;
    }

もちろん、それらにはグローバルな名前はありません...このため、JButtonから画像を「取り出す

」方法を知る必要があるので、それがどのようなボタンであるを知るか、名前でボタンを識別できるようにする必要があります( ?)。では、どうすればこれを行うことができますか?ありがとう!ちなみに、は


contjava.awt.Container

4

3 に答える 3

4

アイコンに基づいてボタンを識別する良い方法が見つかりません。を含むコンポーネントにはJButton、識別に使用できる名前を付けることができます。これが受け入れテストツールの仕組みです。

button.setName(uniqueName);
button.getName();
于 2012-11-07T06:53:30.680 に答える
2

putClientPropertyJComponent の識別に使用

buttons[i][j].putClientProperty("column", i);
buttons[i][j].putClientProperty("row", j);
buttons[i][j].addActionListener(new MyActionListener());

そしてActionListenerから取得します(たとえば)

public class MyActionListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        JButton btn = (JButton) e.getSource();
        System.out.println("clicked column " + btn.getClientProperty("column")
                + ", row " + btn.getClientProperty("row"));
}

しかし、適切な方法は、代わりにスイングアクションJButtonを使用することですActionListener

于 2012-11-07T08:51:35.390 に答える
2

setIcon()およびメソッドを使用getIcon()して JButton のイメージ アイコンを設定および取得する

問題の編集、回答の編集を要求:

ボタンの識別は、次のいずれかで行うのが最適です。

  1. Component.getName()Component.setName()または_
  2. と で異なる文字列を使用しgetText()ますsetText()
于 2012-11-07T06:49:00.450 に答える