[질문] Connection conn 관련 질문이있습니다ㅠㅠ

음.. Connection conn을 main에서

conn = DriverManager.getConnection(.....);

이런식으로 해주어야 하나요?? 다른 곳에서 하면 안되나요??

다른곳에서 해봤는데nonstatic 어쩌구 저쩌구.. 하면서 에러 뜨던데요....
문제는 제가 회원관련 프로그램을 숙제때문에 짜고 있는데요.. 그런데

메뉴를 클릭했을때 이벤트가 발생되자나요..

그럼
private Menu memberShipMenu()
{
menu = new Menu(Member);

//---------------------------------------------------------------------------------------------------------------------------------
//회원가입을 클릭했을 때 생기는 이벤트 처리를 위하여 MenuItem을 이용해서 Menu에 MenuItem추가
//menu.add(회원 가입);
//MemberShip관련 변수들은 앞에 mb를 붙이고 MenuItem을 붙인다.
mbJoinMenuItem = new MenuItem(Join);
mbJoinMenuItem.addActionListener( this );
menu.add( mbJoinMenuItem );
//---------------------------------------------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------------------------------------------
// 회원 탈퇴에 관한 것
//menu.add(회원 탈퇴);
mbSecessionMenuItem = new MenuItem(Session);
mbSecessionMenuItem.addActionListener( this );
menu.add( mbSecessionMenuItem );
//---------------------------------------------------------------------------------------------------------------------------------
//분리자를 넣는다.
menu.addSeparator();
//---------------------------------------------------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------------------------------------------------
//menu.add(프로그램종료);
mbExitMenuItem = new MenuItem(Exit);
mbExitMenuItem.addActionListener( this );
menu.add( mbExitMenuItem );
//---------------------------------------------------------------------------------------------------------------------------------

return menu;
}
이런식으로 해서요 ( 윗부분은 여기 강좌를 보구 코딩한것입니다^^ )

메뉴를 클릭했을때 이벤트를 해당 메뉴가 listener해서요...

그 이벤트 처리를
public void actionPerformed( ActionEvent e )
{
// 회원관리에 관한 클래스 생성
if( e.getSource() == mbJoinMenuItem )
{
MemberJoin join = new MemberJoin( );
join.MakeWindow();
}
else if( e.getSource() == mbSecessionMenuItem )
{
MemberSecession session = new MemberSecession();
session.MakeWindow();
}
else if( e.getSource() == mbExitMenuItem )
{
MemberExit exit = new MemberExit();
exit.MakeWindow();
}
// 예약 메뉴에 관한 객체 생성
else if( e.getSource() == confirmCondoMenuItem )
{
ConfirmationCondo condo = new ConfirmationCondo();
condo.MakeWindow();
}
else if( e.getSource() == confirmHotelMenuItem )
{
ConfirmationHotel hotel = new ConfirmationHotel();
hotel.MakeWindow();
}
else if( e.getSource() == confirmMotelMenuItem )
{
ConfirmationMotel motel = new ConfirmationMotel();
motel.MakeWindow();
}
else if( e.getSource() == confirmPensionMenuItem )
{
ConfirmationPension pension = new ConfirmationPension();
pension.MakeWindow();
}
else if( e.getSource() == confirmViewMenuItem )
{
ConfirmationView view = new ConfirmationView();
view.MakeWindow();
}
// Help메뉴에 관한 객체 생성
else if( e.getSource() == helpInformationMenuItem )
{
HelpInformation help = new HelpInformation();
help.MakeWindow();
}
}
이런식으로 처리 했습니다.

MakeWindow()함수는 각 클래스에 있는 메소드 인데요 각 메뉴에 해당하는 dialog를 생성합니다.^^;;
그런데 문제는 각 클래스를 DB랑 연결을 시켜야하는데요.. 제가 듣기로는 Connection conn = DriverManager.getConnection(....)해서 이 conn객체를 각 클래스에 넘겨주면 된다고 하던데요 ㅠㅠ 넘길 방법이 없더라구요 ㅠㅠ

actionPeformed메소드를 public void actionPerformed( ActionEvent e, Connection conn )일케 하면 안되는 것은 알지만 혹시나 해서 해봤는데요 ㅎㅎ 방법이 없더라구요 ㅠㅠ
---------- Compile ----------
DBproject.java:39: DBproject is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener
public class DBproject extends Frame implements ActionListener
^
1 error
출력 완료 (0초 경과) - 정상 종료ㅠㅠ

해결 방법 좀 알려주세요~^^;;

댓글 10

  • 황소눈 2026.06.21

    답변 감사드립니다^^

  • 꽃가람 2026.06.21

    아까는 시간이 없어서 못해봤는데 Connection객체를 main에서 선언한게 아니라 field로 설정해주니까 되더라구요^^;;; 바보같이 Connection객체를 메인에서 이용하다보니 에러가 생기더군요.. 그래서 안되는 줄 알았는데 생성자 함수에서 이용하니 되더라구요 ㅠㅠ 기초가 부족해서 이런 실수를...

  • 호습다 2026.06.21

    음.. 제가 말한대로 그냥 넘기면 안되던가여??? 제가 지금 잠깐 심심해서.. 스윙으로 함 문자열 넘겨보았는데. 이런건 넘어가던데... Connection 이거는 안넘어 갈려나......

  • 다이 2026.06.21

    음. 그래서.. 디비명이나.. 아이피. 포트 변경되면.. 프로퍼티 파일만 수정하면.. 되게끔 해놨어여.. 저는^^

  • 처녀자리 2026.06.21

    저도 DB연결하고. 해제하는 클래스하고.. url id pw port 이런거 저장한 프로퍼티 파일로 db 연결하거든여....
    import만 시켜서.. 생성하고. 연결하면 되거든여..^^

  • 꽃큰 2026.06.21

    아.. 그리고요... Application이랑 DB랑만 연결시켜주는 클래스를 따로 만들기도 하던데 그렇게 해도 연결이 되나요?? 그 클래스의 객체를 생성해가지고 연결시키는 듯 보였는데요 ^^;;; Java에 익숙치가 않아서요^^;;

  • 하예진 2026.06.21

    근데 책에서는 멤버변수로 Connection을 선언했는데 제가 하면 안된더라구요 ㅠㅠ 뭐때문에 안되는거져?? ㅠㅠ

  • 찬슬 2026.06.21

    그런데요 문제가요.... MakeWindow의 파라미터 값으로 넘겨주려면요 저 actinoPerformed메소드를 호출해야하자나요.. 그런데 actionPerformed메소드는 이벤트가 발생될때 자동으로 호출되는데 어떻게 넘겨주죠???
    Connection을 main에서 선언했는데요... 클래스 멤버변수로 선언하니까 위에처럼 에러뜨구요 ㅠㅠ

  • 파라미 2026.06.21

    흠... 제 생각도 윗분과 같네요...
    그냥 커넥션을 넘겨버려주세요 -_-

  • 슬아라 2026.06.21

    dialog 생성할때 넘겨주면 안되나여???
    ***.MakeWindow(conn); 이런식으로.. 음.. 안될려나?? 메소드에서는
    public void MakeWindow(Connection conn){
    ..................
    }
    이런식으로... 그냥.. 함.. 달아봤어여..^^

프로그램 개발일반 다른 글

목록