마지막 GUI ㅋㅋ

스케쥴을 보는 창이 굉장히 .. 심플에 해졌지만 ...

지금은 .. Class 내부가 .. 난리를 치고 있어서 ..

정리가 필요하다 ㅠㅠ ..

그리고 아직 툴바에 대한 이벤트는 걸지 않았다 ..

일단 ..

분류선택에서 약속과 일과를 선택하면
날짜 선택에 날짜가 뜨고 ..
대략 DB에서 Date 컬럼의 값을 읽어서
listModel.setElement() 를 사용했다 ..
그리고 날짜를 클릭하면 DB에서 Time 컬럼과 Title 컬럼을 읽어서 ..  시간 // 제목 의 형태로 list 에 추가 한다.

그리고 .. 시간 // 제목을 클릭하면 ..

StringTokenizer를 사용해서 " // " 이것을 기준으로 나누고

그 값으로 다시 DB에서 내용을 불러와서 TextArea에 넣을 생각이다 .. 일단 TextArea 는 .. setEditable(false)로 ㅎ

그런데 .. 이상한 점이 하나 있다 ..

초기에 List 는 선택되어 있지 않은 상태이고 ...
따라서 날짜를 선택하면 ... 값이 바뀐것이 아닌지 ..
재미 있는건 .. 그 값이 .. 두번 선택 된다는 것 .. 

public void valueChanged(ListSelectionEvent e) { 
   String str = (String)list1.getSelectedValue();
    System.out.println(str);
}

이것을 확인하면 .. cmd 창에 ..

str값
str값

저런식으로 두번 나온다 .. 이거 .. valueChanged 에서 Class 객체를 만들어서 .. str 값을 전달해줄 생각인데 ..
객체도 2번 만들어 지니 ... 문제가 된다 ... ㅜㅜ ..

금요일 오후에 .. Class 내부를 다시 정리 하면서 .. 살펴 봐야겠다 .. 

그리고 StringTokenizer 를 사용하면 . NullPointException 이 발생하는데 .... 이것도 ..

윽 .. 일단 불러와서 다시 편집해서 DB를 업뎃 할 수 있는 것 까지 하면 .. 주된 기능은 다 구현 된다 ..

by 초랭 | 2009/12/10 00:22 | 2학기 System Project | 트랙백 | 덧글(0)

Event 걸자 ~ (JOIN)

음 .. DB를 이용해서 JOIN 할때 필요한 Event 를 만들었다 .

먼저 JOIN 하기 위해 필요한 정보들은 ID, Password, 사용자 이름과
E-mail 이다. 이 값들이 하나라도 빠지게 되면 아래 글에서 말했듯이
모든 값들을 입력하라는 메세지와 함께 모든 필드가 지워진다.

ID를 입력하고 나서 CHECK 버튼을 누르게 되면 DB의 Table과 비교해서 ID 값이 같은 것이 있는 확인을 하는데..
ResultSet uidList = stmt.executeQuery("select * from user_info;");
  while(uidList.next()) {
  String uid = uidList.getString(1);
  if(uid.equals(id)){
   checkValue =1;
   break;
   }
  else{checkValue = 0;}  
  } 
다음과 같다. DB Table에 첫번째 필드가 user_id 이고 여기값을 하나씩 비교하면서 같으면 while 문을 빠져 나오면서 checkValue를 1로 셋팅하고 이값은 Method를 호출한 곳으로 반환 된다. 1이 반환되면 경고 창을 띄우고 ID Field 의값을 null 로 만들면서 focus를 맞춰 준다.
만약 CHECK 버튼을 누르지 않았는데 ID가 중복이 되지 않는다면 사용자가 만들어 지지만 중복이 된다면 user_id를 주키로 설정해 놨기 때문에 Table에 값이 들어가지 않고 사용자가 만들어 지지 않는다. 

by 초랭 | 2009/12/02 02:04 | 2학기 System Project | 트랙백 | 덧글(1)

Event 걸자 걸자 ~~ !! (New Schedule)


JOIN 이나 LOGIN 그리고 VIEW Schedule 은 .. 창이 한번 밖에 열리지 않게 할 생각이지만 ...

New Schedule은 .. 계속해서 열리게 했다 .. 그리고 역시 ..Title 을 입력하지 않고 .. TextArea 로 넘어가면 .. 위와같이 ..

그런데 .. InterFrame 이 열려있는 것을 알고 .. Focus 를 거기로 맞추는 메소드는 없는 것일까 ㅠㅠ ...

음 그리고 LOAD , COPY, CUT, PASTE 는 .... 말 그대로의 기능을 하게 .. Event 처리 했다 .. (수업시간에 만들었던 .. 메모장을 .. 참고로 해서 .. ㅋㅋㅋ )

SAVE 버튼이 없는 이유는 ..  넓은 의미에서의 보안이랄까 ... 전자 성명서를 PC에 저장하는 것을 비추 하는 이유와 비슷 하다고말할수 있다 ....  

by 초랭 | 2009/12/01 02:55 | 2학기 System Project | 트랙백 | 덧글(2)

Event 걸자 ~~!! (JOIN)


일단 Password를 입력하고 다시한번 입력하는 부분에서 .. 다른게 입력 하고 이름을 입력하려고 ... Name Field 에 마우스를
클릭하면 이벤트가 발생 하게 했다...

aliasField.addMouseListener(new MouseAdapter(){
   public void mouseClicked(MouseEvent e){
    String pw = pwField.getText();
    String cpw = cpwField.getText();
    if(pw.equals(cpw)){} // 값이 같으면 아무일 안생긴다.
    else{
     waringFrame = new JFrame();
     JOptionPane.showMessageDialog(waringFrame, "Your Password entries do not match.","Warning",
     JOptionPane.WARNING_MESSAGE);
     pwField.setText(null);
     cpwField.setText(null);
     pwField.requestFocusInWindow();
     }
    } 
  });

대략 이런 식으로 ㅎㅎ .. 확인 버튼을 누르면 Pw와 RE-Pw의 값이 지워지고 Focus가 Pw로 간다 ...

필드 값을 하나라도 빼 놓고 .. 확인 버튼을 누르면 .. 위와같이 ...

public void actionPerformed(ActionEvent e){
  String Clicked = e.getActionCommand();
  if(Clicked.equals("submit")){
   String name = aliasField.getText();
   String id = idField.getText();
   String pw = pwField.getText();
   String cpw = cpwField.getText();
   if(id.equals("")||name.equals("")||pw.equals("")||cpw.equals("")){
    waringFrame = new JFrame();
    JOptionPane.showMessageDialog(waringFrame, "Must Your All entries full","Warning",
    JOptionPane.WARNING_MESSAGE);
   }else{ new InsertUserInform (name,id,pw);}
  } 

대략 소스는 위와 같다 ... 모든필드값을 입력하고 .. 확인을 누르면 .. DB에저장 되게 .. 만들었는데 ...
class InsertUserInform <<-- DB에 연결해서 Table 값을 넣는 Class .. 
그런데 .. 에러도 ..없고 ... DB 연결은 잘 되고 ... 생성자로 값 전달도 잘 되고 ... 
그런데  DB에 값은 안들어 가고 ... ㅠㅠ ..

하튼 입력을 해야 하는데 .. 안하거나 하는 부분은 대부분 저렇게 처리 했다 ..

by 초랭 | 2009/12/01 02:49 | 2학기 System Project | 트랙백 | 덧글(1)

만들자 ~~~!!!!!!


View Schedule 을 눌렀을때 나타나는 InternalFrame 이다 .
프레임은 borderlayout을 사용해서 west, center, east 로 나뉜다.
west 는 ToolBar가 올라가 있고 .. 뭐 대략적인 버튼 설명은 ... List에서 일정을 수정하거나, 지우는 버튼 그리고 .. SEND 버튼은 ..

아직 머리속에서 정리중이다 ... 뒤죽 박죽 . ㅎㅎ .... 두가지 생각을 가지고 있지만 ....나중에 없에 버릴수도 ㅋㅋ

그리고 East 쪽은 .. 이거는 일단 SEND 버튼이 사용된다는 전제 하에 만들었다 ... 훔 ..

가운데 Center 는 .. JSplitPane 을 사용했다 .. 찾다보니 .. ㅎㅎ .. 왼쪽 오른쪽 두개로 나눠서.. 윈쪽은 Tree 오른쪽은 Tree에서 일정을 클릭하면 그 내용이 보여지는 공간으로 할 생각이다. 

splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); 
//JSplitPane 객체 생성 HORIZONTAL_SPLIT은 수평으로 나누겠다는 의미이다.
  splitPane.setLeftComponent(treeScroll); // 왼쪽에 tree가 있는 treeScroll 올리고 (treeScroll은 JScrollPane)
  splitPane.setRightComponent(textScroll); // 오른쪽에 text 공간이 있는 treeScroll 올리고 ..

  Dimension minimumSize = new Dimension(100,50);
//JSplitPane 에서 가운데를 나누는 바를  움직였을때 한쪽이 작아지는 최소의 크기
  treeScroll.setMinimumSize(minimumSize);
//적용
  treeScroll.setMinimumSize(minimumSize);
//적용
  splitPane.setDividerLocation(130);
//JSplitPane 에서 가운데를 나누는 바를 만듬

후아 ... 이번주 내로 다 끝내야 .. 시험공부를 할텐데 .. ;

흠 .. 뭔가를 추가해 갈때 쉽게 쉽게 생각이 떠오른 다는 점에서 ... GUI를 오랜 고심 끝에 만든 보람이 있다 ㅠ ...

ㅋㅋ CCIE 시험 공부할때 수없이 많이 사용되는 ACL나 제분배, RouteMap들의 이름의 규칙을 나름대로 정하니라고 .. 1주일을 고생했던 기억이 .. 떠오른다.(그뒤로는 .. ACL 거는것도 빨라지고 .. Trobleshooting 도 빨리지고 했었다 ..ㅋㅋ )

by 초랭 | 2009/12/01 02:37 | 2학기 System Project | 트랙백 | 덧글(2)

◀ 이전 페이지          다음 페이지 ▶