2013-04-09 3 views
2

텍스트 필드에 숫자 "6"을 입력하면 텍스트가 텍스트 영역에 표시되어야합니다 ..하지만 다른 숫자를 입력하면 텍스트 영역 내용을 다음과 같이 입력해야합니다. 명확하게. 그러나 코드를 실행하면 다른 숫자를 입력해도 텍스트 영역의 이전 내용이 유지됩니다. 도와주세요!텍스트 영역 내용을 다시 설정하십시오

public void actionPerformed(ActionEvent ae) 
    { 
    String str = ae.getActionCommand(); 
    if(str.equals("Load")) { 
     msg = "You pressed Load"; 
    } else { 
     if(txt.getText().toString().equals ("6")) 
     { 
     **text.setText("");** 
     msg="Set the text for 6"; 
     text.setText("Text"); 
     } 
     else { 
     msg="Invalid number"; 
     text.setText(""); 
     } 
    } 
    repaint(); 
    } 

실수 당신이 그것에 작성 후 텍스트 필드를 삭제하지 않은 것이 었습니다 다음과 같이

import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 
/* <applet code="front" width=500 height=500></applet> */ 
public class front extends Applet implements ActionListener { 
    String msg=""; 
    TextArea text,text1; 
    TextField txt; 
    Button load, enter; 

    public void init() { 
    enter=new Button("Enter"); 
    load=new Button("Load"); 
    txt=new TextField(5); 
    text=new TextArea(10,15); 

    add(load); 
    add(text); 

    add(txt); 
    add(enter); 

    load.addActionListener(this); 
    txt.addActionListener(this); 
    enter.addActionListener(this); 
    } 

    public void actionPerformed(ActionEvent ae) 
    { 
    String str = ae.getActionCommand(); 
    if(str.equals("Load")) { 
     msg = "You pressed Load"; 
    } else { 
     if(txt.getText().toString().equals ("6")) { 
     msg="Set the text for 6"; 
     text.setText("Text"); 
     } else { 
     msg="Invalid number"; 
     text.setText(""); 
     } 
    } 
    repaint(); 
    } 

    public void paint(Graphics g) { 
    g.drawString(msg,350,250); 
    } 
} 
+1

컴퓨터에서이 예제를 실행하고 있는데 "6"이외의 텍스트를 입력하면 TextArea가 지워집니다 ("6"을 입력하면 "텍스트"로 텍스트 영역이 설정 됨) –

+0

지울 TextField? –

+0

TextArea itseld .. 그것은 작동하지만 .. 항상 작동하지 않습니다 .. 특히 두 개의 텍스트 영역이있을 때 .. 내 소프트웨어 또는 뭔가에 문제가 있습니까? – praveena

답변

2

당신의 actionPerformed() 메소드를 쓰기! 이제 text.setText("");if에서 제거합니다.

희망이 문제를 해결했습니다.

+0

아니요. ("텍스트"자체로 남아 있습니다. 메시지는 "유효하지 않은 메시지"만 표시되지만 텍스트 필드는 지워지지 않습니다. – praveena

0

당신은 paint(Graphics g) 메소드 내 super.paint(g)를 호출해야합니다 :

public void paint(Graphics g) { 
    super.paint(g); 
    g.drawString(msg,350,250); 
    } 
0

이제 text.setText("");는 아무것도하지 않습니다 그것은 것 같은,

그래서 더 좋은 방법은 ASCII 코드의 도움을 받아하는 것입니다 //text.setText("");

Null 문자 ASCII 값이 0 인 경우 유니 코드로 '\u0000'

그리고 마지막으로이 사항이 확실히 작동합니다 text.setText(""+'\u0000');

주 : 어떤 방법들이없는 지역을 취소 TextArea 클래스입니다 ... 그래서 당신은 당신의 자신에이 작업을 수행 할 수 있습니다.

관련 문제