2013-03-02 2 views
0

자바 프레임을 사용하여 양식을 만들고 싶습니다. 두 개의 필드 NameAge이 있습니다. 세부 정보를 입력 한 후 버튼을 클릭하면 아래 표시된 것처럼 입력 한 데이터가 표시되어야하지만 정렬 방법은 확실하지 않습니다.GridLayout을 사용하여 텍스트 입력을 정렬 할 때의 문제

import java.awt.*; 
import java.awt.event.*; 

public class DataEntry { 
    public static void main(String[] args) { 
     Frame frm=new Frame("DataEntry frame"); 
     Label lbl = new Label("Please fill this blank:"); 
     frm.add(lbl); 
     frm.setSize(350,200); 
     frm.setVisible(true); 
     frm.addWindowListener(new WindowAdapter(){ 
      public void windowClosing(WindowEvent e){ 
        System.exit(0); 
     } 
     }); 

     Panel p = new Panel(); 
     Panel p1 = new Panel(); 
     Label jFirstName = new Label("First Name"); 
     TextField lFirstName = new TextField(20); 
     Label jLastName =new Label("Last Name"); 
     TextField lLastName=new TextField(20); 
     p.setLayout(new GridLayout(3,1)); 
     p.add(jFirstName); 
     p.add(lFirstName); 
     p.add(jLastName); 
     p.add(lLastName); 
     Button Submit=new Button("Submit"); 
     p.add(Submit); 
     p1.add(p); 
     frm.add(p1,BorderLayout.NORTH); 
    } 
} 
+0

여기서 이벤트 처리 부분을 사용해야합니다. http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html – exexzian

+0

AWT 대신 Swing을 사용하지 않는 이유는 무엇입니까? –

답변

3

는 첫째, 버튼에 이벤트를 추가 할 필요가 클릭 할 때 :

The entered data are: 
    FirstName: abcd 
    LastName: efg 

이것은 내가 지금까지있는 것입니다.

submit.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) 
     { 
      // Add the code to output the relevant details. 
     } 
    } 

다음은 관련 코드를 메소드 본문에 추가하는 것입니다. 당신은 Documentation

+0

이 코드를 넣을 위치와 원하는 코드를 얻기 위해 {} 안에 추가 할 코드를 알려주십시오. – Arjun

+0

actionlistener의 추가는 버튼의 인스턴스화 근처에 추가해야합니다. ('Button Submit = 새 버튼 ("Submit");). 메소드 본문의 코드는 해당 레이블에 "Name"및 "age"값의 값을 넣어야합니다. 'jFirstName.setText (name);' – christopher

0

이 "제출"버튼에 리스너를 추가 읽어야 : "myLabelForShowingTheOutput는"인쇄 할 JLabel의 것을

Submit.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     myLabelForShowingTheOutput.setText("<html><body>Name: " + lFirstName + "<br>Last name: " + lLastName + "</body></html>"); 
    } 
}); 

참고. 인쇄 할 텍스트는 기본 HTML이므로 레이블에 여러 줄을 표시 할 수 있습니다. HTML없이이 작업을 수행하는 다른 방법은 이름을위한 JLabel을 만들고 연령을위한 JLabel을 만드는 것입니다. 나이에 대한 명백한 JTextField가 없기 때문에 출력에 성을 넣었 음을 참고하십시오.

변수는 소문자로 시작해야하므로 제출은 "제출"됩니다.

+0

나는 그것을 이해할 수 없다. 원하는 출력을 얻기 위해 코드를 작성하는 방법을 알려주시겠습니까? – Arjun

+0

코드는 주석에 쓰여진 코드입니다. "myLabelForShowingTheOutput"이라는 새 JLabel을 만들고 jFirstName 및 jLastName을 사용하여 패널에 추가하기 만하면됩니다. –