2013-06-21 9 views
1

클릭하면 다른 메시지가 표시되는 빨간색 원을 보여주는 간단한 응용 프로그램을 만들려고합니다. 이 부분의 코드는 다음과 같습니다.왜 내 문자열이 창에 표시되지 않습니까?

g.drawString("DO NOT PRESS", 100, 100); 

올바르게 코딩되었지만 열리는 창에 텍스트가 표시되지 않습니다. 여기에 지금까지 전체 코드입니다 :

import java.awt.Graphics; 

import javax.swing.JFrame; 

public class BigRedButton extends JFrame { 

    public BigRedButton() { 

     setTitle("Big Red Button"); 
     setSize(500, 500); 
     setResizable(false); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 

    public void graphics(Graphics g) { 

     g.drawString("DO NOT PRESS", 100, 100); 
} 
    public static void main(String[] args){ 

     new BigRedButton(); 
    } 
} 
+1

1) 서명이 올바른지 확인하기 위해 행동을 변경해야하는 메소드에'@ Override' 표기법을 추가하십시오. 2) 최상위 컨테이너의 크기를 설정하지 마십시오. 대신 내용을 배치하고'pack()'을 호출하십시오. –

답변

4
  1. 그런 방법 JFrame에서 graphics 없다, 그래서 아무것도를 호출하지 않습니다.
  2. 최상위 컨테이너에 직접 페인팅하지 말아야하며, 다른 것들은 제외하고 이중 버퍼링되지 않으며 페인트 할 때 깜박입니다. 대신 사용자 지정 구성 요소 (예 : JPanel에서 확장)를 만들고이를 paintComponent 메서드보다 우선 적용해야합니다.
  3. 당신은 당신의 독서까지, 당신은

    으로 지적 A는 Initial Threads

    개정을 읽어해야하지만, Performing Custom Painting, Painting in AWT and Swing 또한

2D Graphics을 통해 읽을 시간이 걸릴해야 Andrew는 @Override 주석을 사용하여 재정의한다고 생각하는 방법이 실제로 처음에 재정의되는 방법인지 확인해야합니다. 이것은 프로그램이 컴파일되는 것을 막을 것이고 많은 일들이 예상대로 작동하지 않는 이유를 알아 내려고 노력하고 있습니다.

+1

또한 행동이 바뀌는 메소드에'@ Override' 표기법을 추가하여 서명이 올바른지 확인하십시오. –

관련 문제