2013-09-24 10 views
2
package carspeedometer; 

import java.awt.Graphics; 

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 

class a1 { 

    a1() { 
     JFrame jf = new JFrame("Speedometer"); 
     jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel jp = new JPanel(); 
     JLabel jb = new JLabel(new ImageIcon(
       "C:/Users/Vinayak/Desktop/tester.jpg")); 
     jp.add(jb); 

     jf.add(jp); 
     jf.setVisible(true); 
     jf.setSize(700, 700); 
    } 

    public void paint(Graphics g) { 
     g.drawLine(70, 70, 200, 200); 
    } 

    public static void main(String...s) { 
     new a1(); 
    } 
} 

라인이 화면에 표시되지 않습니다. 이미지 상단에 선을 표시하고 싶습니다. 여기 나는 속도계를 만들려고하지만 처음에는 줄을 표시해야합니다.이미지에 라인이 표시되지 않습니다. jframe

+0

연습용으로 만들려면 그냥 계속하십시오. 그렇지 않으면 [third party lib] (http://harmoniccode.blogspot.be/2010/08/java-swing-component-library.html) – Robin

+0

을 사용하는 것이 좋습니다. [Concurrency in Swing] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/), 이것이 정말로 당신에게 알려지지 않은 것이면 :-) –

답변

5

구성 요소의 그리기 방법은 Swing에서만 그릴 수 있습니다. 클래스가 아무 것도 확장하지 않기 때문에 페인트 메서드는 아무 것도 무시합니다. 난 당신이 인 JPanel을 확장하는 클래스를 만드는 것이

  • 을 제안
  • 당신은 인 JPanel의 paintComponent(Graphics g) 메소드를 오버라이드 (override) 당신이 당신이 JFrame의에 JPanel을 배치 오버라이드
  • 를 확인하기 위해 @Override 주석을 사용
  • 그것을 표시하고 Swing Painting Tutorials을 읽는
  • 을 표시하십시오. 당신은이 물건을 추측하고 싶지 않습니다.
관련 문제