Error: <anonymous pack1.ClsConAvi$6> is not abstract and does not override abstract method handle(Event) in EventHandler

3 respostas Resolvido
L

Pessoal, estou com o erro acima na tentativa de fazer um Drag and Drop de uma imagem. Busquei na web
e vi referências a necessidade de implementar a interface. Coloquei implements EventHandler e, neste caso
da um outro erro, além do erro do título, como segue:

  • error: MyClasss not abstract and does not override abstract method handle(Event) in EventHandler
    public class MyClass extends Application implements EventHandler

O erro do título dá no @Override do setOnDragOver e tb nos 2 Override seguintes.

Dêem uma olhada no código (reduzido) abaixo:

package pack1;

import java.util.List;

import java.util.ArrayList;

import java.util.regex.Pattern;

import java.util.Scanner;

import java.util.NoSuchElementException;

import java.lang.IllegalArgumentException;

import javafx.application.Application;

import javafx.application.Platform;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.stage.Stage;

import javafx.stage.Modality;

import javafx.scene.Scene;

import javafx.scene.layout.VBox;

import javafx.scene.layout.HBox;

import javafx.scene.layout.Background;

import javafx.scene.layout.BackgroundImage;

import javafx.scene.layout.BackgroundRepeat;

import javafx.scene.layout.BackgroundPosition;

import javafx.scene.layout.BackgroundSize;

import javafx.scene.image.Image;

import javafx.scene.image.ImageView;

import javafx.scene.control.TableView;

import javafx.scene.control.TableColumn;

import javafx.scene.control.cell.PropertyValueFactory;

import javafx.scene.control.TableRow;

import javafx.scene.control.Button;

import javafx.scene.control.Label;

import javafx.scene.control.TextField;

import javafx.scene.control.TextFormatter;

import javafx.scene.control.TextInputControl;

import javafx.scene.Node;

import javafx.scene.paint.Color;

import javafx.scene.text.Font;

import javafx.scene.text.TextBuilder;

import javafx.scene.input.DragEvent;

import javafx.scene.input.Dragboard;

import javafx.scene.input.TransferMode;

import javafx.scene.input.MouseEvent;

import javafx.beans.value.ChangeListener;

import javafx.beans.value.ObservableValue;

import javafx.geometry.Insets;

import javafx.geometry.Pos;

import javafx.geometry.Side;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import java.io.FileReader;

import java.io.File;

import java.io.BufferedWriter;

import java.io.PrintWriter;

import java.io.FileWriter;

import java.io.IOException;
public class MyClass extends Application implements EventHandler

{

<a class="mention" href="/u/override">@Override</a>

public void start(Stage primaryStage)

{

// Muito código
Scene oCena = myMethod (primaryStage);
}

public Scene myMethod (Stage primaryStage)

{

// Muito código
HBox myHbox     = new HBox(); 

  myHbox.setOnDragOver(new EventHandler() 
  {
     @Override
     public void handle(DragEvent event) 
     {
        System.out.println(">>>>> Imagem Dropada");
     }
  });

  myHbox.setOnDragDropped(new EventHandler() 
  {
     @Override
     public void handle(DragEvent event) 
     {
        System.out.println(">>>>> Imagem Dropada");
     }
  });

  myHbox.setOnDragExited(new EventHandler() 
  {
     @Override
     public void handle(DragEvent event) 
     {
        System.out.println(">>>>> Imagem Dropada");
     }
  });

// Muito código

 Scene myScene = new Scene(myHbox, 800, 600);

 return myScene.

}

Agradeço a ajuda.

3 Respostas

staroski

Sempre que postar código fonte no fórum, selecione ele e clique no botão </> senão fica uma bagunça para ler.

Sobre seu erro:
Error: <anonymous pack1.ClsConAvi$6> is not abstract and does not override abstract method handle(Event) in EventHandler

A mensagem diz que há uma classe anônima dentro da classe ClsConAvi que não está implementando o método handle(Event).

L

Staroski, grato pela resposta. Também entendi isso na msg, porém implementei (codifiquei) um método handle(Event) e o erro mudou. Vou postá-lo aki pra vc poder me ajudar. Grato.

L
Solucao aceita

staroski, vc tinha razão. Eu implementei o metodo handle() e não com o event. Ajustei e está ok agora.
Grato novamente.

Criado 24 de agosto de 2017
Ultima resposta 29 de ago. de 2017
Respostas 3
Participantes 2