2013-02-03 2 views
-2

편집 : 좋아, 이제는 친구의 도움으로 문제를 해결할 수있었습니다. =)마우스를 클릭 할 때 애플릿 화면에 문자열을 그리는 방법은 무엇입니까?


현재 Java 애플릿을 만들고 있습니다. 애플릿은 사용자로부터 텍스트 입력을 가져 와서 return 키를 누를 때 화면에 표시함으로써 작동합니다. 이것이 현재 내 프로그램이 작업하고있는 지점입니다. 마우스 클릭 시점에서 마우스를 클릭하면 텍스트 입력/문자열이 그려 지도록 텍스트를 만들 수있는 방법이 있는지 궁금합니다.

나를 도와 줄 수있는 사람에게 미리 감사드립니다. :)

+1

* "마우스를 클릭 할 때 애플릿 화면에 문자열을 그리는 방법"* [무엇을 시도 했습니까?] (http://www.whathaveyoutried.com/) 그림을 그릴 때 많은 예제가 있습니다. 마우스 클릭시. 팁 하나,'JFrame'에 먼저 추가 된'JPanel'에서 이것을 정렬하십시오. 일단 작동하면 JApplet에 추가되어야합니다. –

+0

좋아, 어떻게 할 수 있니? – ElementOfMagic

+0

* "어떻게하면 좋을까요?"* 검색? 오른쪽 상단의'search' 박스로 가서 "[java] mouse"등을 입력하십시오. 그러나 @MadProgrammer가 응답을 보았습니다. BTW - '애플릿 + 문자열 + 마우스'를 찾지 마세요. 이것은 너무 구체적이며 애플릿에서 수행 할 수있는 모든 작업을 프레임에서 수행 할 수 있습니다 (개발 및 디버그가 더 쉽습니다). –

답변

3

것은 내가 만들 수있는 방법이 있었는지 궁금 그것 때문에 마우스를 클릭하면 텍스트 입력/문자열이 마우스 클릭 지점 에서 그려집니다.

대답 : 예 ...

그것과 대답을 떠날 날의 무례 수 있을까요 ...?

이것은

이 예는 단지 사용자 지정 구성 요소에 텍스트를 렌더링하는 Graphics#drawString를 사용하여 ... 당신이 달성하려는 작업에 따라, 비교적 간단한 과정이다. 특정 지점의 구성 요소에 레이블을 붙이는 것만으로도 똑같이 할 수 있지만, 다른 웜 깡통입니다.

enter image description here

public class TestDrawText { 

    public static void main(String[] args) { 
     new TestDrawText(); 
    } 

    public TestDrawText() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (Exception ex) { 
       } 

       JFrame frame = new JFrame("Test"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.add(new TestPane()); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    public class TestPane extends JPanel { 

     private Point textPoint; 

     public TestPane() { 
      addMouseListener(new MouseAdapter() { 
       @Override 
       public void mouseClicked(MouseEvent e) { 
        textPoint = e.getPoint(); 
        repaint(); 
       } 
      }); 
     } 

     @Override 
     public Dimension getPreferredSize() { 
      return new Dimension(200, 200); 
     } 

     @Override 
     protected void paintComponent(Graphics g) { 
      super.paintComponent(g); 
      if (textPoint != null) { 
       FontMetrics fm = g.getFontMetrics(); 
       g.drawString("You clicked at " + textPoint.x + "x" + textPoint.y, textPoint.x, textPoint.y + fm.getAscent()); 
      } 
     } 

    } 

} 

더 많은 정보를 확인 밖으로

.

+0

고마워,하지만 애플릿이 주된 방법이 없다고 생각 했어? – ElementOfMagic

+1

그들은 대신에'JFrame'을 사용하는 간단한 예제입니다. 애플릿을 사용하는 것이 쉽고 간단합니다. – MadProgrammer

+0

아, 이건 애플릿을 사용해야 만하는 일입니다. – ElementOfMagic

관련 문제