Uczę się pisania programów w Javie i nie mam jeszcze pojęcia o naprawie błędów w trakcie pisania kodu. Przepisuje program z książki Java - ćwiczenia zaawansowane i Eclipce podkreśliło mi trzy błędy. Poniżej zamieszczam kod przepisany z książki i proszę o podpowiedz co z tymi błędami zrobić.
Opis błędów wyświetlanych w Eclipse:
Błąd nr 1 tak jest opisany:
Multiple markers at this line
*- The type ChatClient must implement the inherited abstract method *
ActionListener.actionPerformed(ActionEvent)
- The serializable class ChatClient does not declare a static final serialVersionUID field of type long
Błąd nr 2 tak jest opisany:
The method exitClicked() is undefined for the type new WindowAdapter(){}
Błąd nr 3 tak jest opisany:
The method keyPressed(KeyEvent) in the type new KeyAdapter(){} is not applicable for the arguments (int)
Poniżej jest niepełny listing tego programu, strzałkami z boku zaznaczyłem miejsce wystąpienia błędów.
package bootcamp;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ChatClient extends JFrame implements ActionListener{ <-- w tej linii słowo ChatClient w Eclipse podkreślone jest jako błąd nr 1
protected DefaultListModel<String> dlm;
protected JList lstNicks;
protected JTextArea taMain;
protected JTextField tfCommand;
protected JButton btnConnect;
protected JButton btnDisconnect;
protected JButton btnExit;
public ChatClient(){
super("ChatClient");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter (){
public void windowClosing(WindowEvent e){
exitClicked(); <-- w tej linii słowo exitClicked() w Eclipse podkreślone jest jako błąd nr 2
}
});
initLayout();
setVisible(true);
}
public void initLayout(){
setSize(650,520);
setResizable(false);
setLayout(null);
taMain = new JTextArea();
taMain.setEditable(false);
JScrollPane panelLeft = new JScrollPane(taMain);
panelLeft.setBounds(10,20,480,360);
add(panelLeft);
dlm = new DefaultListModel<String>();
lstNicks = new JList<String>(dlm);
JScrollPane panelRight = new JScrollPane(lstNicks);
panelRight.setBounds(500,20,130,360);
add(panelRight);
JPanel panelBottom1 = new JPanel();
panelBottom1.setLayout(new BorderLayout());
panelBottom1.setBounds(10,395,620,25);
add(panelBottom1);
JPanel panelBottom2 = new JPanel();
panelBottom2.setLayout(new GridLayout());
panelBottom2.setBounds(10,430,620,35);
add(panelBottom2);
tfCommand = new JTextField();
tfCommand.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent evt){
keyPressed(evt.getKeyCode()); <-- w tej linii słowo keyPressed w Eclipse podkreślone jest jako błąd nr 3
}
});
panelBottom1.add(tfCommand);
btnConnect = new JButton("Połącz");
btnConnect.setActionCommand("Connect");
btnConnect.addActionListener(this);
panelBottom2.add(btnConnect);
btnDisconnect = new JButton("Rozłącz");
btnDisconnect.setActionCommand("Disconnect");
btnDisconnect.addActionListener(this);
panelBottom2.add(btnDisconnect);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run(){
}
});
}
}