2016-10-22 1 views
0

내 텍스트를 테스트 윈도우로 만들려고합니다. 코드를 실행할 때 문자열을 그리지 않습니다. 나는 그것의 색깔을 지정했다. 아무도 이걸 도와 줄 수 있니? 그들은 매우 다른 두 가지 목적으로drawString이 윈도우에 텍스트를 그리지 않습니다.

Here what it draws

import javax.swing.*; 
import java.awt.*; 

class Main 
{ 
    public static void main(String[] args) { 
     DrawFrame f = new DrawFrame(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setVisible(true); 
    } 
} 
class DrawFrame extends JFrame 
{ 
    public DrawFrame(){ 
     setTitle("For Aylin"); 
     setSize(1280,720); 

     DrawPanel panel = new DrawPanel(); 
     Container cp = getContentPane(); 
     cp.add(panel); 
    } 
} 

class DrawPanel extends JPanel 
{ 
    public void paintComponents(Graphics g) 
    { 
     super.paintComponents(g); 
     g.setColor(Color.darkGray); 
     g.drawString("Hi", 100, 10); 
    } 
} 

답변

3

당신은 인 JPanel의 paintComponent 방법이 아닙니다의 paintComponents 메소드를 오버라이드 (override)합니다. 첫 번째 요소는 원하는 요소를 그립니다. 두 번째 요소는이 부모가 보유한 자식 구성 요소를 가져 와서 직접 그립니다.

또한 일치하도록 수퍼 전화를 변경하고 메서드 위에 @Override 주석을 사용하는 것을 잊지 마십시오.