2012-11-01 3 views
1

Java에서 GUI를 처음 사용했습니다. 그러나 아래 프로그램을 시도했지만 작동하지 않습니다. 그것은 독립 실행 형 응용 프로그램입니다. 웹을 검색했지만 관련 답변을 찾을 수 없습니다. 도와주세요.Java Swing을 사용하여 TextField에서 사용자 입력 화면을 인쇄하는 방법

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

public class usernamepass extends JFrame implements ActionListener{ 
    JTextField a; 

    public usernamepass(){ 
     JFrame jp=new JFrame(); 
     add(jp); 
     a=new JTextField(12); 
     jp.add(a); 
     a.addActionListener(this); 
    } 

    public void actionPerformed(ActionEvent ae){ 
     this.repaint(); 
    } 

    public static void main(String [] args){ 
     usernamepass obj=new usernamepass(); 
     obj.setSize(300,300); 
     obj.setVisible(true); 
     obj.setResizable(true); 
     obj.setTitle("HI") ; 
    } 

    public void paint(Graphics g){ 
     g.drawString("Name "+a.getText(),10,70); 
    } 
} 

편집 : 죄송합니다. 코드가 엉망입니다 (시스템이 고장났습니다). 글쎄, 코드가 변경 사항과 함께 실행되고 있지만 인쇄 메시지가 이전 메시지를 덮어 쓰고 다시 그려지지 않습니다.

+0

왜 작동하지 않는다고합니까? 더 많은 정보를 제공해야합니다. – Michael

+1

탭을 수정하면 코드에 명백한 오류가 발생합니다 (JPanel은 언급되었지만 사용되었지만 인스턴스화되지 않았습니까?). 당신은 질문을 게시하기 전에 이러한 경향이 있어야합니다 또는 대부분의 사람들은 그것을 무시합니다. – calderonmluis

+0

actionPerformed가 호출 될 때마다 기본 usernamepass를 만들고 같은 것으로 변경합니다. – yuritsuki

답변

3

actionPerformed 메서드에서 새 usernamepass 개체를 만드는 대신 this 키워드를 사용하여 현재 화면을 그립니다.

코드에서 시도해 보면 효과가 있습니다.

public void actionPerformed(ActionEvent ae){ 
     this.repaint(); 
} 
관련 문제