반응형

 

1. 실행

버그 아이콘을 클릭하여 디버그 모드를 실행한다.

 

스프링의 경으 스프링 Dashboard에서 디버그모드 실행 아이콘을 클릭한다.

 

2. 디버깅

Step Into(F5): 한 줄씩 진행. 함수를 만나면 함수 내부로 진입.

Step Over(F6): 한 줄씩 진행. 함수 호출은 건너뜀.

Step Return(F7): 현재 함수 끝까지 바로 가서 리턴 후 함수 호출부로 되돌아감.

Resume(F8): 다음 브레이크 포인트까지 진행.

 

3. 디버그 활용

 - Breakpoints : 현재 설정되어있는 Breakpoint 모두 확인

 

- Variables : 모든 변수 확인

 

- Expressions : 특정 변수 확인

반응형
반응형

파일 다이얼로그 사용 예제입니다.

import java.awt.*;

class MyFrame extends Frame{
    private FileDialog fDialog = null;

    public MyFrame(String title){
        super(title);
        this.setSize(400,300);
        this.setVisible(true);
    }

    public void paint(Graphics g){
        super.paint(g);
        if(fDialog !=null) putMsg(g);
    }

    public void update(Graphics g){
        putMsg(g);
    }

    public void setDialog(FileDialog f){
        fDialog = f;
    }

    private void putMsg(Graphics g){
        g.drawString("Directory: " + fDialog.getDirectory(), 10, 50);
        g.drawString("File" + fDialog.getFile(),10, 100);
    }
}

public class awtex4 {
    public static void main(String args[]){
        MyFrame myFrame = new MyFrame("FileDialogTest");
        FileDialog f = new FileDialog(myFrame, "Open" , FileDialog.LOAD);

        f.setVisible(true);

        myFrame.setDialog(f);

        myFrame.repaint();
    }
}

file Dialog 실행 모습

 

파일 경로와 파일명이 표시된 화면

 

 

 

반응형
반응형
import java.awt.*;

public class awtex3 {
    public static void main(String args[]){
        Frame f = new Frame("Popup Menu");
        PopupMenu pm = new PopupMenu("Popup");

        pm.add(new MenuItem("MenuItem1"));

        Menu m = new Menu("SubMenu1");
        m.add(new MenuItem("SubMenuItem1"));
        pm.add(m);

        f.add(pm);
        f.setSize(300,200);
        f.setBackground(Color.white);
        f.setVisible(true);
        pm.show(f, 10, 100);

    }
}
반응형

'Programming > Java_Etc' 카테고리의 다른 글

JAVA - Intellij JavaFX 설치(Java 11 이후 버전용)  (4) 2020.02.20
AWT Study - FileDialog 사용하기  (2) 2020.02.11
AWT Study - 메뉴 생성  (0) 2020.02.11
AWT Study - Window & Frame  (0) 2020.02.11
Java 막대 그래프 그리기2  (0) 2020.02.08
반응형
import java.awt.*;

public class awtex2 {
    public static void main(String args[]){
        Frame f = new Frame("Pulldown Menu");
        MenuBar mb = new MenuBar();

        Menu m = new Menu("Menu1");
        m.add(new MenuItem("MenuItem1"));

        Menu sm = new Menu("SubMenu1");
        sm.add(new MenuItem("SubmenuItem1"));
        sm.add(new MenuItem("SubmenuItem2"));

        m.add(sm);
        m.add(new MenuItem("MenuItem2"));

        mb.add(m);

        f.setMenuBar(mb);
        f.setSize(200, 200);
        f.setBackground(Color.WHITE);
        f.setVisible(true);
    }
}
반응형

'Programming > Java_Etc' 카테고리의 다른 글

AWT Study - FileDialog 사용하기  (2) 2020.02.11
AWT Study - 팝업메뉴  (0) 2020.02.11
AWT Study - Window & Frame  (0) 2020.02.11
Java 막대 그래프 그리기2  (0) 2020.02.08
Database Connection - DBConnection.java  (0) 2020.01.29
반응형

AWT가 오래된 것인줄만 알았는데 우리 회사에서 아직도 쓰고 있습니다. 그런데 생각해보니까, 오래된 소스도 최신 컴퓨터에서도 잘 돌아가고, 별도 설치도 필요 없고, 호환 잘 되는게 좋은 것 같습니다. Visual Basic으로 짜여진 프로그램도 있는데, 유지보수가 너무 힘드네요...항상 가상XP를 깔고 배포도 엄청 복잡해요.

그래서 결론은 다시 AWT! 기초부터 차근차근 공부해 보도록 하겠습니다. 우선 Window와 Frame 만들기 예제

import java.awt.*;

public class awtex {
    public static void main(String args[]){
        Frame f = new Frame("Frame");
        f.setSize(500, 400);
        f.setBackground(Color.white);
        f.setVisible(true);

        Window w = new Window(f){
            public void paint (Graphics g){
                g.drawString("Window", 10, 50);
            }
        };
        Rectangle r = new Rectangle(50, 50, 100, 100);
        w.setBounds(r);
        w.setBackground(Color.yellow);
        w.setVisible(true);
        w.toFront();

    }
}

윈도우는 테두리와 메뉴바를 갖지 않는 그냥 컨테이너인데 반해 Frame은 테두리와 메뉴바를 가질 수 있으며, 

둘 다 BorderLayout을 사용하여 레이아웃을 설정합니다.

반응형

'Programming > Java_Etc' 카테고리의 다른 글

AWT Study - 팝업메뉴  (0) 2020.02.11
AWT Study - 메뉴 생성  (0) 2020.02.11
Java 막대 그래프 그리기2  (0) 2020.02.08
Database Connection - DBConnection.java  (0) 2020.01.29
Database Connection - OracleTest.java  (0) 2020.01.29
반응형

자바로 데이터베이스 연결 프로그램 구현 시, DB연결부 구현파일입니다.

 

package DB;
import java.sql.*;

public class DBConnection
{
  public static Connection dbConn;
  public static Connection getConnection() 
  {
    Connection conn = null;
    try{
        String user="abcd";
        String pw="********";
        String url="jdbc:oracle:thin:@zxcv.dothome.co.kr:1521:odbc";
        //이렇게 해야 연결이 된다. C#과 차이
        Class.forName("oracle.jdbc.driver.OracleDriver");
        System.out.println("driver load success");
        conn=DriverManager.getConnection(url,user,pw);
        System.out.println("DBConnectsuccess");
    }catch(ClassNotFoundExceptioncnfe){
        System.out.println("DB드라이버로딩실패:"+cnfe.toString());
    }catch(SQLExceptionsqle){
        System.out.println("DB접속실패:"+sqle.toString());
    }catch(Exceptione){
        System.out.println("Unkonwn error");
        e.printStackTrace();
    }
    return conn;
  }
}

 

반응형

'Programming > Java_Etc' 카테고리의 다른 글

AWT Study - 팝업메뉴  (0) 2020.02.11
AWT Study - 메뉴 생성  (0) 2020.02.11
AWT Study - Window & Frame  (0) 2020.02.11
Java 막대 그래프 그리기2  (0) 2020.02.08
Database Connection - OracleTest.java  (0) 2020.01.29
반응형

1. DBConnection.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class DBConnection 
{
    public static Connection dbConn;
    
    public static Connection getConnection()
    {
      Connection conn = null;
      try {
        String user = "scott"; 
        String pw = "tiger";
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";

        Class.forName("oracle.jdbc.driver.OracleDriver");        
        conn = DriverManager.getConnection(url, user, pw);

        System.out.println("Database에 연결되었습니다.\n");

      } catch (ClassNotFoundException cnfe) {
          System.out.println("DB 드라이버 로딩 실패 :"+cnfe.toString());
      } catch (SQLException sqle) {
          System.out.println("DB 접속실패 : "+sqle.toString());
      } catch (Exception e) {
          System.out.println("Unkonwn error");
          e.printStackTrace();
      }
    return conn;     
    }
}

 

2. DB 데이터추출 구현부

package DB;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class OracleTest
{
    public static void main(String args[])
    {
        Connection conn = null; // DB연결된 상태(세션)을 담은 객체
        PreparedStatement pstm = null; // SQL 문을 나타내는 객체
        ResultSet rs = null; // 쿼리문을 날린것에 대한 반환값을 담을 객체
        
        try {
          // SQL 문장을 만들고 만약 문장이 질의어(SELECT문)라면
          // 그 결과를 담을 ResulSet 객체를 준비한 후 실행시킨다.
          String quary = "SELECT * FROM (select * from TEMP order by empno) where rownum<=10";
          //String quary = "SELECT * FROM (select * from TEMP order by EMP_#) fetch first 100 rows only";
          conn = DBConnection.getConnection();
          pstm = conn.prepareStatement(quary);
          rs = pstm.executeQuery();
          System.out.println("EMPNO EMP_X KoreanName HanmunName CommonNumber");
          System.out.println("============================================");

          while(rs.next()){
              String empno = rs.getString(1);
              int emp_x = rs.getInt(2);
              String Korean_name = rs.getString(3);
              String Han_name = rs.getString(4);
              int comm = rs.getInt("RES_#1");
              //java.sql.Date hiredate = rs.getDate(5); // Date 타입 처리
              String result = empno+" "+emp_x+" "+Korean_name+" "+Han_name+" "+comm;
              //                      직원번호       구분           한글이름             한문이름        주민번호
              System.out.println(result);
           }
           
        } catch (SQLException sqle) {
        	System.out.println("SELECT문에서 예외 발생");
        	sqle.printStackTrace();
            
        }finally{
        // DB 연결을 종료한다.
            try{
                if ( rs != null ){rs.close();}
                if ( pstm != null ){pstm.close();}
                if ( conn != null ){conn.close(); }
                
            }catch(Exception e){
            	throw new RuntimeException(e.getMessage());
            }
        }
    }
}

 

반응형

'Programming > Java_Etc' 카테고리의 다른 글

AWT Study - 팝업메뉴  (0) 2020.02.11
AWT Study - 메뉴 생성  (0) 2020.02.11
AWT Study - Window & Frame  (0) 2020.02.11
Java 막대 그래프 그리기2  (0) 2020.02.08
Database Connection - DBConnection.java  (0) 2020.01.29

+ Recent posts