2013-03-11 13 views
1

jButton을 사용하는 작은 응용 프로그램을 작성하고 있습니다. 이 질문을 위해서 우리는 nextButton이라고 부를 것입니다. 프로그램 라이프 사이클 전반에 걸쳐 jButton의 기능을 변경하는 것은 나쁜 설계입니까? 상태 기계와 비슷합니다.jButton의 기능을 변경하는 것이 좋지 않습니까?

nextButton 클릭 할 때마다 내 응용 프로그램 모드가 다음 "상태"로 전환되고 이에 따라보기가 변경됩니다.

class NextButtonListener implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 
     ServiceMode mode = model.getMode();  
     switch (mode) { 
      case SELECT: 
       // alter view and give nextButton function1 
       ... 
       model.setMode(ServiceMode.CHECK);   
      break; 
      case CHECK: 
       // alter view and give nextButton function2 
       ... 
       model.setMode(ServiceMode.COPY);  
      break;     
      case COPY: 
       // alter view and give nextButton function3 
       ... 
       model.setMode(ServiceMode.END);      
      break;     
      case END: 
       // alter view and give nextButton function4     
       ... 
      break; 
     } 
    } 
} 

은 그냥 자신의 기능을 가진 각각의 새로운 버튼의 인스턴스를 더 나은가요? 아니면 가능한 한 여러 기능을 가진 하나의 버튼을 사용하는 것이 더 낫습니까?

+0

나쁜 디자인이라고 결코 들어 본 적이 없습니다. 그들을 숨기기위한 단추를 만드는 것이 더 나은 옵션이 아닙니다. –

+0

일반적으로 하나의 버튼이 하나의 기능 (설정)으로 표시됩니다. 그렇지 않으면 잠재적으로 여러 장소에서 유사한 케이스 문을 사용하게됩니다 ... – Randy

+0

나는 이것이 UI 디자인 문제라고 생각합니다. 그런 행동이 필요하다면 당신은 "좋은"소프트웨어 설계를 내놓을 수 있습니다. – Chedy2149

답변

2

사용자가 단추를 누른 후이 문제가 발생하는지에 대한 아이디어가 있는지 확인하려면 컨텍스트 (JButton.setText)에 따라 단추 레이블이나 아이콘을 변경하는 것이 좋습니다.

그렇지 않으면 문제가 아닙니다. 컨텍스트에 따라 변경되거나 표시되거나 사라지는 버튼은 일반적으로 툴바와 같은 위치에서 자주 발생합니다.

1

아니요, 나쁜 디자인이 아닙니다. 그것과 함께 가라.

관련 문제