0
我使用內部類執業的非法啓動但我有一個家庭作業問題的難度:它是如下:內部問題。表達錯誤
創建擴展JPanel以及具有標記「一」三個JButton的實例Swing組件類BetterButtons, 「兩」和「三」。在BetterButtons的構造函數中,編寫實現ActionListener的本地類ButtonListener。這個本地類有一個字段字符串名稱和一個構造函數,它接受一個字符串參數,並將其分配給字段名稱。 void actionPerformed在控制檯通知上輸出標籤名爲button的按鈕。在BetterButtons的構造函數中,創建ButtonListener的三個實例,每個按鈕監聽其操作。
我快完了,但是,我得到表達錯誤的非法開始在該行:
public void actionPerformed(ActionEvent e){
這裏是我的代碼:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class BetterButtons extends JPanel {
JButton one, two, three;
JPanel p;
public BetterButtons() {
class ButtonListener implements ActionListener {
String name;
*****public ButtonListener(String name) {****
public void actionPerformed(ActionEvent e){
System.out.println("Button "+name+"has been pressed.");
}
}
}
one = new JButton("One");
two = new JButton("Two");
three = new JButton("Three");
one.addActionListener(new ButtonListener());
two.addActionListener(new ButtonListener());
three.addActionListener(new ButtonListener());
p = new JPanel();
p.add(one);
p.add(two);
p.add(three);
this.add(p);
}
public static void main(String[] args) {
JFrame f = new JFrame("Lab 2 Exercise 2");
BetterButtons w = new BetterButtons();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.getContentPane().setLayout(new FlowLayout());
f.getContentPane().add(w);
f.pack();
f.setVisible(true);
}
}
另外,我怎麼能引用正確的值分配給字符串變量名?
預先感謝您
注意, OP在描述中提到這是對作業的幫助。 – akf 2010-02-10 05:31:02
事實上 - OP與解決方案非常接近 - 指出語法中的輕微錯誤的最好方式就是通過一個例子 - 這是一個例子,通過這個例子,他們可以更徹底地學習Java的結構。 – Chaos 2010-02-10 05:57:03