문제

GUI의 구성 요소가 Jbutton, Jpanel, Jtextfield, 그 좋은 점과 같습니다.

정수를 취하는 텍스트 필드를 만들고 싶습니다. 그런 다음 제출 버튼을 눌러 입력 된 정수를 기준으로 팝업 창이나 그 밖의 많은 텍스트 필드를 만듭니다.

나는 단서가 없다. 누군가 나를 올바른 방향으로 시작할 수 있습니까?

내가 가지고있는 문제는 GUI 구성 요소를 만들기 위해 루프를 만드는 방법이 없다는 것입니다. 고리를 가지고 있고 다음과 같은 일을한다면

print("JTextField num1 = new JTextField()");

그런 다음 루프의 경우 많은 것을 원할 때만 1 개의 텍스트 필드 만 생성합니다. jtextFields의 변수를 일반적으로 생성하려면 어떻게해야합니까?

당신의 도움을 주셔서 감사합니다...

도움이 되었습니까?

해결책

적절한 LayoutManager (예 : GridLayout)를 사용하여 TextFields를 작성하고 추가하십시오.

for (i = 0; i < numberOfTextFields; i++) {
    JTextField textField = new JTextField();
    container.add(textField);
    /* also store textField somewhere else. */
}

다른 팁

다음과 같은 것을 시도하십시오.

List<JTextField> nums = new ArrayList<JTextField>();
JTextField tempField;

for (int i = 0; i < 10; i++) {
    tempField = new JTextField();
    jPanel1.add(tempField); // Assuming all JTextFields are on a JPanel
    nums.add(tempField);
}

컨테이너의 적절한 레이아웃 관리자를 설정하는 것을 잊지 마십시오. (이 경우 JPANEL1)

텍스트 필드를 저장할 목록을 작성한 다음 색인으로 다시 가져올 수 있습니다. 그런 다음 필요한만큼의 필드를 가질 수 있습니다.

List fields = new ArrayList();

// Create as many elements as you need
for (int i = 0; i < numberOfElements; i++){
  JTextField field = new JTextField();
  // Add the fields to some panel so they are shown in the screen.  
  // I assume that the component is called parent panel
  parentPanel.add(field);

  // Store the component in the list so you can retrieve it later
  fields.add(field);
}

// ...

// When you want to retrieve a particular one:

JTextField field = (JTextField)fields.get( indexToRetrieve );
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top