2011-09-04 6 views
-4

가능한 중복 :
What does the "Multiple markers" mean?자바,이 라인의 다중 마커는 무엇입니까?

package test2; 
import java.awt.*; 
import java.awt.event.*; 


public class MyDrawing3Demo extends Frame{ 

    Panel p1,p2; 
    Button red,green,blue,large,small,clear,allClear; 
    MyCanvas2 can; 
    public MyDrawing3Demo(){ 
     super("::MyDrawing3Demo::"); 

     p1 = new Panel(); 
     p1.setBackground(Color.blue); 
     add(p1,"North"); 

     p2 = new Panel(){ 
      public Insets getInsets(){ 
       return new Insets(40,20,20,20); 
      } 
     }; 
     p2.setBackground(Color.darkGray); 
     add(p2,"Center"); 

     p1.add(red = new Button("Red")); 
     p1.add(green = new Button("Green")); 
     p1.add(blue = new Button("Blue")); 
     p1.add(large = new Button("Large")); 
     p1.add(small = new Button("Small")); 
     p1.add(clear = new Button("Clear")); 
     p1.add(allClear = new Button("All Clear")); 

     MyHandler2 my = new MyHandler2(); // ERROR! Multiple Markers at this line 

     red.addActionListener(my); 
     green.addActionListener(my); 
     blue.addActionListener(my); 
     large.addActionListener(my); 
     small.addActionListener(my); 
     clear.addActionListener(my); 
     allClear.addActionListener(my); 

     can = new MyCanvas2(); 
     can.setSize(300,300); 
     can.setBackground(Color.white); 
     p2.add(can); 


     can.addMouseMotionListener(my); 

     addWindowListener(new WindowAdapter(){ 
      public void windowClosing(WindowEvent e){ 
       System.exit(0); 
      } 
     }); 


     class MyHandler2 extends MouseMotionAdapter implements ActionListener 
     { 
      public void mouseDragged(MouseEvent e){ 
       can.x = e.getX(); 
       can.y = e.getY(); 
       can.repaint(); 
      } 
      public void actionPerformed(ActionEvent e){ 
       Object o = e.getSource(); 
       if(o == red){ 
        can.cr = Color.red; 
       }else if(o == blue){ 
        can.cr = Color.blue; 
       }else if(o == green){ 
        can.cr = Color.green; 
       }else if(o == large){ 
        if(can.w <20){ 
         can.w++; 
         can.h++; 
        } 
       }else if(o == small){ 
        if(can.w >2){ 
         can.w--; 
         can.h--; 
        } 
       }else if(o == clear){ 
        can.cr = can.getBackground(); 
       }else if(o == allClear){ 
        can.flag = 1; 
        can.repaint(); 
       } 
      } 
     } 

    } 

    public static void main(String[] args){ 
     MyDrawing3Demo d = new MyDrawing3Demo(); 
     d.setSize(500,500); 
     d.setVisible(true); 
    } 
} 

class MyCanvas2 extends Canvas{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = -2856701740289022957L; 
    int x=-13,y=-13,w=7,h=7; 
    Color cr = Color.black; 
    int flag = 0; 
    public void update(Graphics g){ 
     paint(g); 
    } 
    public void paint(Graphics g){ 
     if(flag == 0){ 
      g.setColor(cr); 
      g.fillOval(x,y,w,h); 
     }else if (flag == 1){ 
      g.clearRect(0,0,300,300); 
      flag = 0; 
     } 
    } 
} 

답변

2

이 줄에는 두 개의 오류가 있음을 의미합니다. 그것은 당신이 사용하는 타입이 컴파일러에 알려지지 않았기 때문입니다. 클래스 MyHandler2의 선언은 생성자 내부에서 수행되므로 외부로 옮겨야합니다. 즉, 클래스의 선언 앞에 오른쪽에서 오른쪽으로 이동하십시오.

+0

대단히 감사합니다 !!!! –

2

"다중 마커"는 말을 더 이상 일을 가지고 말하고 (아마 넷빈즈) 당신의 IDE에서 불과 메시지입니다 그 줄에 대해서. 실제 오류 메시지를 보려면 마커를 클릭해야합니다.

관련 문제