건물의 엘리베이터를 시뮬레이트하는 GUI를 만들려고합니다. (정말로 스레딩/c 스캔을 테스트하기 위해)하지만 엘리베이터 제어판의 버튼과 각 개별 바닥의 버튼을 생성 할 때, 나는 갇혀있다. 각 층마다 새로운 버튼 쌍을 생성하고 엘리베이터마다 새 제어판을 생성하려고 생각했습니다. 또한 다양한 양의 바닥을 갖는 데 어려움이 있습니다. 어쨌든 내 질문에이 일을하는 가장 좋은 방법은 무엇입니까? 아마도 모든 것을 위해 새로운 버튼을 생성 할 필요는 없으며 하나의 세트 만 사용하고 바닥/엘리베이터마다 액션이 수행하는 것을 변경해야할까요? 나는 GUI에 익숙하지 않아서 묻고있다. 층의 수는 변수이 경우 도움동적으로 생성 된 jbuttons
0
A
답변
0
모든 엘리베이터와 제어판이 동일한 경우 단일 방법을 사용하여 엘리베이터 또는 제어판을 전달할 수 있습니다. CustomPanel은 JPanel을 확장하고 메소드 foo를가집니다.
public void createElevatorButtons(final CustomPanel panel) {
ArrayList<JButton> buttons = new ArrayList<>(); //arraylist of buttons we can keep track of
JPanel buttonPanel = new JPanel(); //the visible component
for(int i = 1; i <= numberOfFloors;i++) {
JButton button = new JButton(String.valueOf(i)); //creates buttons for floors 1 to max
buttons.add(button);
buttonPanel.add(button);
}
panel.add(buttonPanel);
//add the action listeners
for(JButton button : buttons) {
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JButton floor = (JButton) e.getSource();
int floorNumber = Integer.parseInt(floor.getText());
panel.foo(floorNumber); //we tell the elevator/panel/whatever to do something, you will have to extend JPanel to do foo
}
});
}
}
0
주셔서 감사합니다 당신이 버튼의 배열을 만들 수 있습니다 런타임에서 바닥의 수의 정확한을 결정할 때 다음
JButton[] buttons = new JButton[MAX_NUMBER_OF_FLOORS];
을, 당신은 갈 수 버튼을 인스턴스화하고 추가하십시오 :
for(int i=0; i<numberOfFloors; i++) {
buttons[i] = new JButton();
controlPanel.add(buttons[i]);
}
이와 비슷한 것이 작동합니다.
MAX_NUMBER_OF_FLOORS에 100과 같이 큰 숫자를 할당하면 문제가 발생하는 한계가있을 수 있습니다.
관련 문제
- 1. 동적으로 생성 된 뷰 그룹을 동적으로 생성 된 버튼으로 제거합니다.
- 2. 동적으로 생성 된 QRadioButton을 사용하여 동적으로 생성 된 객체를 토글합니다.
- 3. 동적으로 생성 된 연산자
- 4. 동적으로 생성 된 클래스?
- 5. 동적으로 생성 된 종속성
- 6. 동적으로 생성 된 CSS
- 7. 동적으로 생성 된 TABLENAME
- 8. 동적으로 생성 된 배열
- 9. 동적으로 생성 된 클래스
- 10. 동적으로 생성 된 GUI
- 11. 동적으로 생성 된 Ajax.BeginForm
- 12. 동적으로 생성 된 스트림
- 13. 동적으로 생성 된 버튼
- 14. 동적으로 생성 된 앵커
- 15. CheckBox를 동적으로 만든 동적으로 생성 된 GridView
- 16. 동적으로 생성 된 링크로 동적으로 HTML을 업데이트합니다.
- 17. 동적으로 생성 된 벡터에 값을 동적으로 추가
- 18. JButtons, ActionListener 및 JOptionPane
- 19. JButtons 디스플레이가 표시되지 않습니까?
- 20. ActionListeners 및 JButtons
- 21. 동적으로 생성 된 이미지의 문제점
- 22. 동적으로 생성 된 필드 읽기
- 23. 동적으로 생성 된 이미지 지우기
- 24. 동적으로 생성 된 div 지우기
- 25. 동적으로 생성 된 컨트롤을 반복합니다.
- 26. 동적으로 생성 된 메소드? _one_time_conditions_valid_718?
- 27. 동적으로 생성 된 버튼을 클릭하십시오.
- 28. 동적으로 생성 된 버튼을 클릭하십시오.
- 29. 동적으로 생성 된 버튼 저장
- 30. Junit와 동적으로 생성 된 테스트가