Java GUI 구성 요소 생성
-
21-08-2019 - |
문제
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 );
제휴하지 않습니다 StackOverflow