[JAVA_Back-End]

[JAVA] GUI(2) 본문

Programming/JAVA

[JAVA] GUI(2)

너굴위 2023. 9. 12. 17:44
728x90
반응형

< 이전 포스팅 정리 >

 

[JAVA] 멀티스레드 + GUI

< 지난시간 정리 > //용어 정리하기 JDBC java.sql Connection 클래스 - DB 종류 별로 정해지 url - 사용자가 설정한 DB의 Id - 사용자가 설정한 DB의 Password 를 사용해 DB에 연결할 수 있다. Statement 클래스 - SQL

thstnqls.tistory.com

* 프로세스 / 스레드 => 프로그램 튜닝

                               => 게임

                               => 채팅

* UI(user interface:일반디자인)  : 디자이너 (웹디자이너..산출물: psd파일)

  UX(user experience: 편리하게(산업디자인)  : 디자이너 + 개발자 (퍼블리셔..프론트 개발자)

 

UI

CUI- prompt

GUI - 2D Graphic 중심으로 사용자 입력 출력 제공

         2D Graphic - Color, Font

                             점 선 면..

         => GUI

               awt(java.awt)            => swing(javax.swing)

               javafx         - 최신

               swt             - eclipse

 

Container

     Window(X)

          JFrame(O)      -프로그램 당 1개

          JDialogue - 팝업창

          JPanel

 

 

JFrame

1. 상속(O)

2. 객체변수

 

레이아웃

1. 자동레이아웃

2. 수동레이아웃

     Absolute(Null) Layout

 

배치

       다른 컴포넌트(위젯) 

       다른 컨테이너

 

이벤트

코딩

 

=> WindowBuilder

            WindowBuilder로 작업한 내용만 import


프로젝트 만들 때 (default)

1. 600*800으로 프레임 크기 맞추기

2. resizable을 false로 설정

3. Layout을 absolute로 설정

 

Label   - JLabel

 

lbl1의 변수를 밖으로 빼냄
해당 부분에서는 set과 get을 설정하는 것이다.

 

* 아이콘 삽입

- 프로젝트 파일에 아이콘png파일 넣고 아래 사진과 같이 설정하면 아이콘이 뜬다

아이콘 삽입

 

JFrameEx02.java   - 아이콘 삽입하기
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.SwingConstants;
import javax.swing.ImageIcon;

public class JFrameEx02 extends JFrame {

private JPanel contentPane;
private JLabel lbl1;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JFrameEx02 frame = new JFrameEx02();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the frame.
 */
public JFrameEx02() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);    //frame의 크기 default 로 600*800으로 지정하기
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);
contentPane.setLayout(null);

lbl1 = new JLabel("<html> <body><font color='red'>라벨1</font><br /> 라벨2</body></html>");     //html을 사용하면 엔터키나 색을 사용할 수 있다.
lbl1.setFont(new Font("HY견명조", Font.PLAIN, 14));
lbl1.setBounds(31, 41, 123, 88);   //label의 영역을 지정

System.out.println(lbl1.getText());
contentPane.add(lbl1);

JLabel lbl2 = new JLabel("");
lbl2.setIcon(new ImageIcon("C:\\Users\\KITCOOP\\Downloads\\Icon.png"));
lbl2.setBounds(31, 170, 341, 113);
contentPane.add(lbl2);
}
}

 

 

JButtonEx01.java - background와 foreground를 통해 버튼의 색상조정 + 클릭 이벤트 부여
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;

public class JButtonEx01 extends JFrame {

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JButtonEx01 frame = new JButtonEx01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the frame.
 */
public JButtonEx01() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);
contentPane.setLayout(null);

JButton btn1 = new JButton("버튼1");
btn1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("버튼 1 클릭!");
}
});
btn1.setForeground(Color.RED);
btn1.setBackground(Color.BLUE);
btn1.setBounds(12, 10, 97, 23);
contentPane.add(btn1);

JButton btn2 = new JButton("New button");
btn2.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("버튼 2 클릭!");
}
});
btn2.setIcon(new ImageIcon("C:\\Users\\KITCOOP\\Downloads\\Icon.png"));
btn2.setBounds(12, 43, 281, 127);
contentPane.add(btn2);
}
}

 

결과1

 

 

 

기존 프로그램 - 순차처리

GUI - 이벤트 중심 (이벤트가 돌지 않으면 무한루프같이 멈춰있는 것이다)

JTextFieldEx01.java  - 버튼으로 입력 후 label로 출력하기
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;

public class JTextFieldEx01 extends JFrame {

private JPanel contentPane;
private JTextField textField1;     //textfield는 이미 인스턴스변수로 선언되어 있다
private JLabel lbl1;
private JTextField textField2;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JTextFieldEx01 frame = new JTextFieldEx01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the frame.
 */
public JTextFieldEx01() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);
contentPane.setLayout(null);

textField1 = new JTextField();
textField1.setBounds(12, 22, 229, 21);
contentPane.add(textField1);
textField1.setColumns(10);

JButton btn1 = new JButton("New button");
btn1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
lbl1.setText(textField1.getText());    //textField1의 내용을 get후 lbl1에 set한다.
textField2.setText(textField1.getText());
}
});
btn1.setBounds(12, 55, 229, 23);
contentPane.add(btn1);

lbl1 = new JLabel("New label");
lbl1.setBounds(12, 88, 229, 15);
contentPane.add(lbl1);

textField2 = new JTextField();
textField2.setEditable(false);           // 편집기능을 빼면 출력용으로 사용 가능하다
textField2.setBounds(12, 113, 229, 21);
contentPane.add(textField2);
textField2.setColumns(10);
}
}

버튼을 누르면 textField1의 내용이 lbl1에 뜬다.

 

textField2로 출력 가능

 

 

* JTextFieldEx02.java - 이름 앞글자 대문자로 바꾸기 (hong gil dong -> Hong Gil Dong)
import java.awt.EventQueue;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.border.TitledBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class JTextFieldEx02 extends JFrame {


private JPanel contentPane;
private JTextField textField1;
private JTextField textField2;
private JPanel panel;


/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JTextFieldEx02 frame = new JTextFieldEx02();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}


/**
* Create the frame.
*/
public JTextFieldEx02() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));


setContentPane(contentPane);
contentPane.setLayout(null);

panel = new JPanel();
panel.setBorder(new TitledBorder(null, "이름 대문자로 바꾸기", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBounds(12, 10, 560, 122);
contentPane.add(panel);
panel.setLayout(null);

textField1 = new JTextField();
textField1.setBounds(12, 17, 536, 21);
panel.add(textField1);
textField1.setColumns(10);

JButton btn1 = new JButton("변경");
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btn1.setBounds(12, 49, 536, 23);
panel.add(btn1);

textField2 = new JTextField();
textField2.setBounds(12, 82, 536, 21);
panel.add(textField2);
textField2.setEditable(false);
textField2.setColumns(10);

btn1.addMouseListener(new MouseAdapter() { //처리부
@Override
public void mouseClicked(MouseEvent e) {


textField2.setText(Capitalize(textField1.getText()));
}
});
}

public String Capitalize(String name) { //모듈화
String[] text2=name.split(" ");
String result="";
for(int i=0;i<text2.length;i++) {
result+=text2[i].substring(0,1).toUpperCase()+text2[i].substring(1)+" ";
}
return result;
}

}

=> panel로 기능을 묶어 표현할 때는 기능들을 shift로 묶고 오른쪽 클릭 => surround with => border 시킨다.

=> 클릭이벤트에 처리로직을 두지 않고 따로 메소드화 시켜서 깔끔하게 처리만 할 수 있도록 한다.

결과

 

 

 

 

=> scrollPane선택  -> horizontal 설정 -> always 혹은 필요할때만 사용가능

=> textarea를 통해 여러줄 작성 가능 (editable을 false로 하여 출력용으로도 가능)

JTextAreaEx01.java  - textarea 사용하기 (구구단 출력하기)
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.border.TitledBorder;
import javax.swing.border.EtchedBorder;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class JTextAreaEx01 extends JFrame {

private JPanel contentPane;
private JTextField textField1;
private JTextArea textArea1;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JTextAreaEx01 frame = new JTextAreaEx01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the frame.
 */
public JTextAreaEx01() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);
contentPane.setLayout(null);

JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)), "\uAD6C\uAD6C\uB2E8", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
panel.setBounds(16, 19, 545, 52);
contentPane.add(panel);
panel.setLayout(null);

JLabel lbl1 = new JLabel("단수입력 :");
lbl1.setBounds(6, 21, 57, 15);
panel.add(lbl1);

textField1 = new JTextField();
textField1.setBounds(75, 18, 305, 21);
panel.add(textField1);
textField1.setColumns(10);

JButton btn1 = new JButton("구구단 출력");
btn1.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {

textArea1.setText(gugudan(textField1.getText()));    //overwrite
// textArea1.append(gugudan(textField1.getText())); 이어쓰기

}
});
btn1.setBounds(392, 17, 137, 23);
panel.add(btn1);

JScrollPane scrollPane1 = new JScrollPane();
scrollPane1.setBounds(12, 82, 548, 581);
contentPane.add(scrollPane1);

textArea1 = new JTextArea();
scrollPane1.setViewportView(textArea1);
textArea1.setEditable(false);
}

public String gugudan(String num) {
String result="";
for(int i=1; i<=9;i++) {
result+= num+"x"+i+"="+ Integer.parseInt(num)*i+"\n";
}
return result;
}
}

결과

*append를 사용하여 구구단 만들기 (다른방식, 마우스 이벤트 부분만 변경해서 사용하면 된다.)

    @Override
            public void mouseClicked(MouseEvent e) {
                //overwrite
                //textArea.setText(textField.getText());
                //append

                //textArea 초기화
                textArea.setText("");
               
                int dansu = Integer.parseInt(textField.getText());

                for(int i=1; i<=9;i++){
                    textArea.append(dansu+"X"+i+"="+(dansu*i));
                    textArea.append(System.lineSeparator());
                }
            }

 

 

데이터(베이스) 연결 클래스 :DAO(Data Access Object)

데이터 전송 클래스: TO(Transfer Object)

                               : VO(Value Object)

 

 

-> db사용 전 드라이브 연결 필수 

ZopcodeSearchEx01.java
import java.awt.EventQueue;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.border.TitledBorder;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.border.EtchedBorder;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class ZipcodeSearchEx01 extends JFrame {


private JPanel contentPane;
private JTextField textField;
private JTextArea textArea;


/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ZipcodeSearchEx01 frame = new ZipcodeSearchEx01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}


/**
* Create the frame.
*/
public ZipcodeSearchEx01() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));


setContentPane(contentPane);
contentPane.setLayout(null);

JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)), "\uC6B0\uD3B8\uBC88\uD638 \uAC80\uC0C9\uAE30", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
panel.setBounds(6, 12, 566, 70);
contentPane.add(panel);
panel.setLayout(null);

textField = new JTextField();
textField.setBounds(12, 24, 416, 21);
panel.add(textField);
textField.setColumns(10);

JButton btn = new JButton("우편번호 검색");
btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String strDong = textField.getText();

textArea.setText( "" );

String url = "jdbc:mariadb://localhost:3306/project";
String user = "project";
String password = "123456";

Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;

try {
Class.forName( "org.mariadb.jdbc.Driver" );

conn = DriverManager.getConnection(url, user, password);

String sql = "select zipcode, sido, gugun, dong, ri, bunji from zipcode where dong like ?";
pstmt = conn.prepareStatement( sql );
pstmt.setString( 1, strDong + "%" );

rs = pstmt.executeQuery();

while( rs.next() ) {
//System.out.println( rs.getString( "zipcode" ) );

String zipcode = rs.getString( "zipcode" );
String sido = rs.getString( "sido" );
String gugun = rs.getString( "gugun" );
String dong = rs.getString( "dong" );
String ri = rs.getString( "ri" );
String bunji = rs.getString( "bunji" );

String address = String.format("[%s] %s %s %s %s %s",
zipcode, sido, gugun, dong, ri, bunji );

//System.out.println( address );
textArea.append( address + System.lineSeparator() );
}
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
System.out.println( "에러 " + e1.getMessage() );
} catch (SQLException e1) {
// TODO Auto-generated catch block
System.out.println( "에러 " + e1.getMessage() );
} finally {
if( rs != null ) try { rs.close(); } catch(SQLException e1) {}
if( pstmt != null ) try { pstmt.close(); } catch(SQLException e1) {}
if( conn != null ) try { conn.close(); } catch(SQLException e1) {}
}
}
});
btn.setBounds(440, 23, 114, 23);
panel.add(btn);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(12, 95, 560, 656);
contentPane.add(scrollPane);

textArea = new JTextArea();
textArea.setEditable(false);
scrollPane.setViewportView(textArea);
}
}

 

ZipcodeSearchEx02.java
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.border.TitledBorder;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.border.EtchedBorder;
import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class ZipcodeSearchEx02 extends JFrame {

private JPanel contentPane;
private JTextField textField;
private JTextArea textArea;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ZipcodeSearchEx02 frame = new ZipcodeSearchEx02();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
 * Create the frame.
 */
public ZipcodeSearchEx02() {
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 600, 800);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);
contentPane.setLayout(null);

JPanel panel = new JPanel();
panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED, new Color(255, 255, 255), new Color(160, 160, 160)), "\uC6B0\uD3B8\uBC88\uD638 \uAC80\uC0C9\uAE30", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0)));
panel.setBounds(6, 12, 566, 70);
contentPane.add(panel);
panel.setLayout(null);

textField = new JTextField();
textField.setBounds(12, 24, 416, 21);
panel.add(textField);
textField.setColumns(10);

JButton btn = new JButton("우편번호 검색");
btn.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String strDong = textField.getText();

textArea.setText( "" );

ZipcodeDAO dao = new ZipcodeDAO();
ArrayList<ZipcodeTO> datas = dao.searchZipcode(strDong);
//System.out.println( datas );

for( ZipcodeTO to : datas ) {
String address = String.format( "[%s] %s %s %s %s %s",
to.getZipcode(), to.getSido(), to.getGugun(),
to.getDong(), to.getRi(), to.getBunji() );
textArea.append( address + System.lineSeparator() );
}

}
});
btn.setBounds(440, 23, 114, 23);
panel.add(btn);

JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(12, 95, 560, 656);
contentPane.add(scrollPane);

textArea = new JTextArea();
textArea.setEditable(false);
scrollPane.setViewportView(textArea);
}
}

 

ZipcodeDAO.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class ZipcodeDAO {
private Connection conn;

// 데이스베이스 연결
public ZipcodeDAO() {
// TODO Auto-generated constructor stub

String url = "jdbc:mariadb://localhost:3306/project";
String user = "project";
String password = "123456";

try {
Class.forName( "org.mariadb.jdbc.Driver" );
this.conn = DriverManager.getConnection( url, user, password );
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println( "[에러] : " + e.getMessage() );
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println( "[에러] : " + e.getMessage() );
}
// finally(X)
}

// 각 쿼리별로 메서드 생성
public ArrayList<ZipcodeTO> searchZipcode( String strDong ) {
//public ArrayList<String> searchZipcode( String strDong ) {
PreparedStatement pstmt = null;
ResultSet rs = null;


ArrayList<ZipcodeTO> datas = new ArrayList<ZipcodeTO>();

try {
String sql = "select zipcode, sido, gugun, dong, ri, bunji from zipcode where dong like ?";
pstmt = this.conn.prepareStatement( sql );
pstmt.setString( 1, strDong + "%" );

rs = pstmt.executeQuery();

while( rs.next() ) {
ZipcodeTO to = new ZipcodeTO();

to.setZipcode( rs.getString( "zipcode" ) );
to.setSido( rs.getString( "sido" ) );
to.setGugun( rs.getString( "gugun" ) );
to.setDong( rs.getString( "dong" ) );
to.setRi( rs.getString( "ri" ) );
to.setBunji( rs.getString( "bunji" ) );

datas.add( to );
}
} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println( "[에러] : " + e.getMessage() );
} finally {
if( rs != null ) try { rs.close(); } catch( SQLException e ) {}
if( pstmt != null ) try { pstmt.close(); } catch( SQLException e ) {}
if( conn != null ) try { conn.close(); } catch( SQLException e ) {}
}
return datas;

}
}









 

ZipcodeTO.java
public class ZipcodeTO {
// DTO / VO
// table의 열 또는 select 열을 생각하면서(중요)
// 멤버필드를 설정
private String zipcode;
private String sido;
private String gugun;
private String dong;
private String ri;
private String bunji;
private String seq;

public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
public String getSido() {
return sido;
}
public void setSido(String sido) {
this.sido = sido;
}
public String getGugun() {
return gugun;
}
public void setGugun(String gugun) {
this.gugun = gugun;
}
public String getDong() {
return dong;
}
public void setDong(String dong) {
this.dong = dong;
}
public String getRi() {
return ri;
}
public void setRi(String ri) {
this.ri = ri;
}
public String getBunji() {
return bunji;
}
public void setBunji(String bunji) {
this.bunji = bunji;
}
public String getSeq() {
return seq;
}
public void setSeq(String seq) {
this.seq = seq;
}
}

 


 

DAO와 DTO에 대해 이해하기

728x90
반응형

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

[JAVA] GUI(4)  (0) 2023.09.15
[JAVA] GUI(3)  (0) 2023.09.14
[JAVA] 멀티스레드 + GUI(1)  (0) 2023.09.12
[JAVA] Data/객체 입출력  (0) 2023.09.01
[JAVA] 파일 입출력  (0) 2023.08.31