2013-01-04 6 views
2

Draw a ruler (line with tick marks at 90 degree angle)을 jframe이 아닌 jpanel로 만들고 싶습니다. jpanel에 선 그리기

그래서 나는 시도 :

JFrame f = new JFrame(); 
JPanel ff = new JPanel(); 

ff.add(new JComponent() { 
... 
}); 

f.add(ff); 
... 

그러나 나는 실패했습니다. :( 은?

+1

구성 요소가 실제로 나타나는지 확인하십시오. ff.setBackground (Color.YELLOW)와 비슷합니다. 또는 뭔가. –

+0

가능한 회피 : http://stackoverflow.com/questions/3673056/java-drawing-on-jpanel-which-on-a-jframe – John

+0

해결책이 아닙니다. 나는 이미 시험해 보았다. – user1949713

답변

4

에 당신은 단순히 FF에 대한 paintComponent(Graphics g){}을 대체 할 수 있습니다 그 방법 내에서 그리는 방법.

이 필요가없는 경우, 즉

JPanel ff = new JPanel(){ 
    public void paintComponent(Graphics g){ 
     // Draw what you want to appear on your JPanel here. 
     // g.drawLine(blah blah blah), etc. 
    } 
}; 

...

ff.add(new JComponent() { 
    ... 
}); 

사용자가 제공 한 링크에서 제안한대로 사용자 지정 구성 요소를 구현하려는 경우가 아니면이 일반 구성 요소가 필요하지 않습니다. 그런 사용자 정의 구성 요소를 만들고 싶다면 ff이 필요하지 않습니다. JFrame은 이미 구성 요소를 보유 할 수있는 컨테이너이기 때문입니다.

+0

좋아, 잘 됐네! – user1949713

+1

@mike -'super.paintComponent' 호출을 제안 할 수도 있습니다 - 단지'super.paintXxx'에 적절한 호출을 추가하여 요청 된 많은 수의 질문이 수정되기 때문입니다;) – MadProgrammer