множественное наследование .. класс должен расширять abstractHandler, а также апплет - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь создать мастер автоматизации, который бы брал некоторые файлы из системы (через обработчик команд) и создавал соответствующий апплет.

Я попытаюсь объяснить мой senario.

Я сделал плагин для новой команды "newModule", которая обрабатывается через "newModuleHandler.java". newModuleHandler расширяет AbstractHandler .

Теперь я хотел бы создать мастер (апплет), который поможет мне с определенными вариантами, которые мне нужно сделать, чтобы выполнить эту команду "newModule".поэтому newModuleHandler расширяет также и апплет .

Я написал newModuleHandler примерно так.

    package archetypedcomponent.commands;

    import org.eclipse.core.commands.AbstractHandler;
    import org.eclipse.core.commands.ExecutionEvent;
    import org.eclipse.core.commands.ExecutionException;
    import java.applet.*;// required when you create an applet 
    import java.awt.Graphics;


    public class newModuleHandler extends AbstractHandler {

    @Override
public boolean isEnabled() {
    // TODO Auto-generated method stub
    return true;
}

@Override
public boolean isHandled() {
    // TODO Auto-generated method stub
    return true;
}

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    // TODO Auto-generated method stub

    return null;
}

public class HelloWorld extends Applet 
{
    // The method that will be automatically called  when the applet is started 
     public void init() 
     { 
         // It is required but does not need anything. 
         System.out.println("Applet initiated");
     } 


    // This method gets called when the applet is terminated 
    // That's when the user goes to another page or exits the browser. 
     public void stop() 
     { 
         //     no actions needed here now.
         System.out.println("Applet Stopped");
     } 


    // The standard method that you have to use to paint things on screen 
    // This overrides the empty Applet method, you can't called it "display" for example.

     public void paint(Graphics g) 
     { 
         //method to draw text on screen 
         // String first, then x and y coordinate. 
         System.out.println("Applet in paint");
          g.drawString("Hey hey hey",20,20); 
          g.drawString("Hellooow World",20,40);

     }
}

}

Теперь, когда команда будет задана, данный метод будет вызываться

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    // TODO Auto-generated method stub

    return null;
}

, и внутри него должен будет вызываться апплет. мой вопрос, как это назвать?

======================================================================================= Мне удалось решить мою проблему, но я отвечаю здесь, так что кто-то, кто также сталкивается с той же проблемой, может руководствоваться

, это мой новый "newModuleHandler.java"

    package archetypedcomponent.commands;

    import org.eclipse.core.commands.AbstractHandler;
   import org.eclipse.core.commands.ExecutionEvent;
  import org.eclipse.core.commands.ExecutionException;
    import java.applet.*;// required when you create an applet 
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JFrame;


public class newModuleHandler extends AbstractHandler {

    @Override
public boolean isEnabled() {
    // TODO Auto-generated method stub
    return true;
}

@Override
public boolean isHandled() {
    // TODO Auto-generated method stub
    return true;
}

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
    // TODO Auto-generated method stub
//  call applet here
     JFrame jp1 = new JFrame();
        Loader a=new Loader ();
        jp1.getContentPane().add(a, BorderLayout.CENTER);
        jp1.setSize(new Dimension(500,500));
        jp1.setVisible(true);

    return null;
}

}

Я сделал новый Loader.java , расширяющий апплет

    package archetypedcomponent.commands;

    import java.applet.Applet;
    import java.awt.Graphics;

    public class Loader extends Applet 
    {
// The method that will be automatically called  when the applet is started 
 public void init() 
 { 
     // It is required but does not need anything. 
     System.out.println("Applet initiated");
//   Graphics g=new ;

 } 


// This method gets called when the applet is terminated 
// That's when the user goes to another page or exits the browser. 
 public void stop() 
 { 
     //     no actions needed here now.
     System.out.println("Applet Stopped");
 } 


// The standard method that you have to use to paint things on screen 
// This overrides the empty Applet method, you can't called it "display" for example.

 public void paint(Graphics g) 
 { 
     //method to draw text on screen 
     // String first, then x and y coordinate. 
     System.out.println("Applet in paint");
      g.drawString("Hey hey hey",20,20); 
      g.drawString("Hellooow World",20,40);

 }

}

Теперь все, что мне нужно, чтобы сделать апплет, может быть сделано в краске Loader.

1 Ответ

2 голосов
/ 28 октября 2011

Апплет может иметь более одного объекта, поэтому extends AbstractHandler в каком-то другом классе, на который апплет имеет ссылку.

...