2017-09-13 86 views
0
不重寫抽象方法的actionPerformed(ActionEvent的)

我已經嘗試了所有的可能性,但依然出現:選擇不是抽象和ActionListener的

select.java:4: error: Select is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
class Select extends JFrame implements ActionListener 
{ 
    JButton admin; 
    JButton user; 
JPanel panel; 
public Select() 
{ 
    admin=new JButton("admin"); 
    user=new JButton("user"); 
    panel=new JPanel(new GridLayout(3,1)); 
    panel.add(admin); 
    panel.add(user); 
    //admin.addActionListener(); 
    admin.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent a) { 
      Login page=new Login(); 
      page.setVisible(true); 
     } 
    }); 
    user.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent b) { 
      Login page=new Login(); 
      page.setVisible(true); 
     } 
    }); 
} 
} 
    class selection 
    { 
     public static void main(String arg[]) 
     { 
      try 
      { 
       Select frame=new Select(); 
       frame.setSize(300,200); 
       frame.setVisible(true); 
      } 
      catch(Exception e) 
      { 
       JOptionPane.showMessageDialog(null, e.getMessage()); 
      } 
     } 
    } 

回答

1

您正在使用匿名類的動作監聽器useradmin。您沒有使用Select作爲動作偵聽器,因此只需從class Select的聲明中刪除implements ActionListener即可。

或者,所需的方法添加到Select

class Select extends JFrame implements ActionListener { 
    ... 

    public void actionPerformed(ActionEvent e) { 
     ... 
    } 
} 

然而,從您發佈的代碼,就沒有必要爲Select實施ActionListener

相關問題