Я получил ошибку в своем коде, но я не уверен, что означает ошибка, я пробовал исследовать ошибку, но, похоже, ничего не связано с моим кодом, может ли кто-нибудь помочь мне?Реализовать унаследованный абстрактный метод?
Мой код;
import java.io.*;
import java.lang.*;
import java.util.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Assignment4Test {
public static void main(String[] args) throws IOException {
Scanner console = new Scanner(System.in);
BufferedReader in = new BufferedReader(new FileReader("shop-account"));
final int Username = 3387;
final int Password = 5183;
final int AccountNumber = 22334455;
int EnteredUsername;
int EnteredPassword;
int EnteredAccountNumber;
for (int s = 0; s <= 3; s++) {
if (s < 3) {
System.out.println("Enter Username");
EnteredUsername = console.nextInt();
System.out.println("Username Entered is " + EnteredUsername);
System.out.println("Enter Password");
EnteredPassword = console.nextInt();
System.out.println("Password Entered is " + EnteredPassword);
System.out.println("Enter Account Number");
EnteredAccountNumber = console.nextInt();
System.out.println("Account Number Entered is " + EnteredAccountNumber);
if (Username == EnteredUsername && (Password == EnteredPassword)
&& (AccountNumber == EnteredAccountNumber)) {
System.out.println("Welcome");
System.out.println("Account username, password, account number and current balance and shown below;");
String line;
while((line = in.readLine()) != null)
{
System.out.println(line);
}
new MyFrame().displayGui();
break;
} else {
System.out.println("Wrong Username, Password or Account Number. Please try again.");
}
} else {
System.out.println("3 incorrect enteries detected. Program is terminating, goodbye!");
}
}
}
static class MyFrame extends JFrame {
JMenuBar menubar;
JMenu TransferAnAmount;
JMenuItem TransferAnAmountToAnotherAccount;
JMenu ListRecentTransactions;
JMenuItem ShowList;
JMenu DisplayCurrentBalance;
JMenuItem ShowBalance;
JMenu ExitProgram;
JMenuItem Exit;
public MyFrame() {
setLayout(new FlowLayout());
menubar = new JMenuBar();
setJMenuBar(menubar);
TransferAnAmount = new JMenu("Transfer An Amount");
menubar.add(TransferAnAmount);
ListRecentTransactions = new JMenu("List Recent Transactions");
menubar.add(ListRecentTransactions);
DisplayCurrentBalance = new JMenu("Display Current Balance");
menubar.add(DisplayCurrentBalance);
ExitProgram = new JMenu("Exit Program");
menubar.add(ExitProgram);
TransferAnAmountToAnotherAccount = new JMenuItem("Transer an amount to another account");
TransferAnAmount.add(TransferAnAmountToAnotherAccount);
ShowList = new JMenuItem("Show List");
ListRecentTransactions.add(ShowList);
ShowBalance = new JMenuItem("Show Balance");
DisplayCurrentBalance.add(ShowBalance);
event s = new event();
ShowBalance.addActionListener(s);
Exit = new JMenuItem("Exit Program");
ExitProgram.add(Exit);
event e = new event();
Exit.addActionListener(e);
}
class event implements ActionListener {
public void actionPerformed3(ActionEvent s) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("shop-account"));
String line;
while((line = in.readLine()) != null)
{
System.out.println(line);
}
}
public void actionPerformed4(ActionEvent e) {
System.exit(0);
}
}
public void displayGui() {
MyFrame gui = new MyFrame();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.setSize(600, 300);
gui.setVisible(true);
}
}
}
Я дал ошибку, как эта линия в моем коде;
}
class event implements ActionListener { // <<< This line
public void actionPerformed3(ActionEvent s) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("shop-account"));
String line;
while((line = in.readLine()) != null)
{
System.out.println(line);
}
}
public void actionPerformed4(ActionEvent e) {
System.exit(0);
}
}
Ошибка дано это;
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem:
The type Assignment4Test.MyFrame.event must implement the inherited abstract method ActionListener.actionPerformed(ActionEvent)
Я не уверен, что ошибка или как это исправить.
Любая помощь приветствуется, спасибо.
Вам необходимо реализовать метод 'public void actionPerformed (ActionEvent s)'. Вы можете прочитать о интерфейсах: http://docs.oracle.com/javase/tutorial/java/concepts/interface.html –
Вы используете Eclipse, не так ли? Итак, перейдите в меню «Окно» и откройте представление «Проблемы». Это представление всегда должно быть открыто, и вы даже не должны пытаться запустить приложение, пока ошибки компиляции все еще перечислены в этом представлении. Eclipse, BTW, вероятно, предупредил вас, что при запуске программы у вас были не компилируемые классы, но вы, вероятно, предпочли игнорировать это предупреждение. Не.И исправить ошибки компиляции перед запуском программы. –