java 간이 주문 기 구현

4474 단어 자바주문 기
본 논문 의 사례 는 자바 가 주문 기 를 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
swing 도구 모음 을 사용 하여 완성 합 니 다.이틀 의 시간 이 걸 리 고 어 려 운 점 이 없 는 것 은 모두 기본 지식 입 니 다.

테이블 번 호 를 입력 한 후,이 테이블 에 사람 이 없 으 면 주문 할 수 있다. 


 
다음은 완성 과정 에서 만난 문 제 를 정리 하 겠 습 니 다.
빈 포인터 이상 
처음에 테이블 번 호 를 입력 하고 확인 을 눌 렀 을 때 빈 포인터 에 이상 한 정보 가 계속 나 왔 습 니 다.처음에 초기 화 를 하지 않 은 원인 이 라 고 생각 했 습 니 다.이상 한 원인 도 이것 을 가리 키 는 것 이 었 습 니 다.그런데 한참 동안 잘못 한 것 을 발 견 했 습 니 다.이상 하 게 도 if 와 else if 의 사용 에 잘못 되 었 습 니 다.

처음에 코드 는 이렇게 여러 개의 if 에 else 를 더 했 습 니 다.else 는 가장 가 까 운 if 와 일치 하기 때문에 여러 개의 if 를 실 행 했 을 때 첫 번 째 if 가 else 를 실 행 했 을 때 도 실 행 됩 니 다.그래서 제 가 확인 단 추 를 눌 렀 을 때 else 에 있 는 것 입 니 다. new OrderDishes(mealMenus,menusName,file).setVisible(true);따라 하기 도 했 는데 이때 mealmenos 가 초기 화 되 지 않 아 빈 포인터 이상 이 생 겼 어 요.

if(e.getSource()==querenButton){
  if(idText.getText().length()!=0){
  //    
 }
 if(e.getSource()==showButton){
  //    
  
 }
 if(e.getSource()==stopOrderingButton){
  
 }else{
  String menusName=null;
  if(e.getSource()==meatButton){
  //    
  }
  if(e.getSource()==vegetarianButton){
  //    
  }
  if(e.getSource()==stapleFoodButton){
  //    
  }
  if(e.getSource()==soupAndPorridgeButton){
  //    
  }
  new OrderDishes(mealMenus,menusName,file).setVisible(true);//       ,new    ,   mealMenus     
 }
 여러 if 를 if,else if 로 바 꾸 면 문 제 를 해결 할 수 있 습 니 다.if 를 실행 할 때 else if 가 실행 되 지 않 습 니 다.(1 년 동안 배 운 자바 가 이런 실 수 를 할 줄 은 몰 랐 습 니 다.실 패 했 습 니 다)

if(e.getSource()==querenButton){
  if(idText.getText().length()!=0){
  //    
 }
 else if(e.getSource()==showButton){
  //    
  
 }
 else if(e.getSource()==stopOrderingButton){
  
 }else{
  String menusName=null;
  if(e.getSource()==meatButton){
  //    
  }
  else if(e.getSource()==vegetarianButton){
  //    
  }
  else if(e.getSource()==stapleFoodButton){
  //    
  }
  else if(e.getSource()==soupAndPorridgeButton){
  //    
  }
  new OrderDishes(mealMenus,menusName,file).setVisible(true);
 }
Randomaccessfile
이 프로그램 은 randomaccessfile 을 사용 하여 메뉴 에 파일 을 기록 하고 파일 을 읽 습 니 다.randomaccessfile 의 역할 을 한층 더 깨 닫 게 해 주 었 습 니 다.randomaccessfile 은 I/O 에서 기능 이 가장 풍부 한 파일 접근 클래스 입 니 다.seek()방법 으로 파일 에 접근 할 수 있 는 임의의 방법 을 제공 하여 파일 내용 에 접근 할 수 있 습 니 다.이 프로그램 은 seek()를 사용 하여 메뉴 를 기록 하기 위해 매번 파일 포인 터 를 맨 뒤에 놓 지만 readDouble 을 사용 하여 가격 을 파일 에 기록 할 때 가격 이 어 지 럽 습 니 다.

 //    
try {
 RandomAccessFile in=new RandomAccessFile(file,"r");
 String mealName=null;
 while((mealName=in.readUTF())!=null){
 showArea.append("
"+mealName); String mealPrice=in.readUTF(); showArea.append(" "+mealPrice); totalPrice=totalPrice+Double.parseDouble(mealPrice); } // try { RandomAccessFile out=new RandomAccessFile(file,"rw"); if(file.exists()){ long length=file.length(); out.seek(length); } for (int i=0;i<orderDishes.size();i++){ out.writeUTF(orderDishes.get(i).getName()); String str=String.valueOf(orderDishes.get(i).getPrice()); System.out.println(str); out.writeUTF(str); }

그 다음 에 저 는 가격 을 String 으로 바 꾸 고 파일 에 기록 하 겠 습 니 다.총 가격 을 계산 할 때 Double 으로 바 꾸 겠 습 니 다.그러면 가격 이 파일 에 정확하게 기록 할 수 있 지만 일부 기호 코드 가 있 습 니 다.좋 은 방법 을 시도 해 보 았 지만 이런 기호 코드 를 해결 하지 못 했 습 니 다.나중에 기술 이 좋아 지면 다시 해결 하 겠 습 니 다.
 
Box 좋아요. 
이 프로그램 은 HashSet 을 사용 하여 테이블 번 호 를 기록 하여 사람 이 있 는 지,완선 되 지 않 은 지 판단 한 다음 에 데이터 베 이 스 를 사용 하여 개선 할 것 입 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기