電子書籍の厳選無料作品が豊富!

ど素人です 改行の関係でimportは省略してます
labelにActionListenerが登録できないのですが、なぜでしょうか

class test extends JFrame{
test() {
getContentPane().setLayout(new FlowLayout());
JLabel label = new JLabel("てすと");
JButton b1 = new JButton("OK");
b1.addActionListener(label);
getContentPane().add(b1);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JButtonTest");
setSize(200, 100);
setVisible(true);
}
public static void main(String[] args) {
new test();
}
}
class LetLabel extends JLabel implements ActionListener{
public void LetLabe(){
}
public void actionPerformed(ActionEvent ae){
}
}

A 回答 (1件)

b1.addActionListener(label);



引数にJLabelを指定していますが
JLabelはActionListenerを継承していないので
これはできません
やるのなら

LetLabel label = new LetLabel();

こうしなければダメ

LetLabelはActionListenerを継承しているので
b1.addActionListener(label);
することができます

new LetLabel("てすと");
にしたい場合はLetLabelにコンストラクタを追加してください
    • good
    • 0
この回答へのお礼

ありがとうございました
おかげで解決しました

お礼日時:2012/03/23 11:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!