Skip to content

moosongsong/project-mindmap-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’‘ ROOT ROOT πŸ’‘

뿌리뿌리 : java swing을 μ΄μš©ν•œ λ§ˆμΈλ“œλ§΅ ν”„λ‘œκ·Έλž¨

ν”„λ‘œμ νŠΈ ν™”λ©΄

ꡬ성원

νŒ€μž₯ : 솑무솑 νŒ€μ› : 쑰은진

μš”κ΅¬μ‚¬ν•­

1. μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ μš”κ΅¬μ‚¬ν•­

GUI κ΅¬μ„±μš”μ†Œ SWING μ»΄ν¬λ„ŒνŠΈ
μœˆλ„μš° JFrame
메뉴바 JMenuBar
νˆ΄λ°” JToolBar
속성 페인, λ§ˆμΈλ“œλ§΅ 페인 JPanel (in JScrollPane in JSplitPane)
ν…μŠ€νŠΈ 에디터 페인 JTextArea (int JScrollPane in JSplit Pane)
λ…Έλ“œ JLabel

[ν‘œ 1] GUI ꡬ성 μš”μ†Œλ₯Ό κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ SWING μ»΄ν¬λ„ŒνŠΈ

2. ν…μŠ€νŠΈ μ—λ””ν„°μ˜ μš”κ΅¬μ‚¬ν•­

ν•œ 행이 ν•˜λ‚˜μ˜ λ…Έλ“œμ— λŒ€μ‘ν•œλ‹€. νƒ­μœΌλ‘œ λ ˆλ²¨μ„ κ²°μ •ν•œλ‹€. β€˜μ μš©β€™ λ²„νŠΌμ„ ν΄λ¦­ν•˜λ©΄ λ§ˆμΈλ“œ λ§΅ ꡬ쑰λ₯Ό κ³„μ‚°ν•˜μ—¬ Mind Map Pane에 κ°€μ‹œν™” μ‹œν‚΅λ‹ˆλ‹€.

3. 속성 페인의 μš”κ΅¬ 사항

속성 νŽ˜μΈμ€ μ„ νƒλœ λ…Έλ“œμ˜ 속성을 λ””μŠ€ν”Œλ ˆμ΄ ν•œλ‹€. 속성 νŽ˜μΈμ—μ„œ 보여주어야 ν•  μ •λ³΄λŠ” [ν‘œ2]λ₯Ό λ”°λ₯Έλ‹€. 속성 νŽ˜μΈμ€ JLabel을 μ‚¬μš©ν•˜μ—¬ λ³΄μ—¬μ£Όκ³ μž ν•˜λŠ” 정보가 무엇인지 ν‘œμ‹œν•˜λ©°, 속성값은 JTextFieldλ₯Ό μ‚¬μš©ν•˜μ—¬ λ””μŠ€ν”Œλ ˆμ΄ ν•œλ‹€. JTextFieldλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ λŠ” μ‚¬μš©μžμ˜ 속성 κ°’ 변경을 ν—ˆμš©ν•˜κΈ° μœ„ν•¨μ΄λ‹€.

μΆ”κ°€μ μœΌλ‘œ, 속성 νŽ˜μΈμ— [λ³€κ²½] λ²„νŠΌ(JButton)을 μΆ”κ°€ν•˜μ—¬, μ‚¬μš©μžμ— μ˜ν•œ λ³€κ²½λœ 속성 값을 MindMap Pane에 λ°˜μ˜ν•˜λŠ” 역할을 μˆ˜ν–‰ν•œλ‹€.

속성 SWING μ»΄ν¬λ„ŒνŠΈ
μ‹œμž‘ x, y μ’Œν‘œ JLabel, JTextField
(λ…Έλ“œ) ν…μŠ€νŠΈ (μˆ˜μ •λ˜μ§€ μ•Šλ„λ‘ μ„€μ •) JLabel, JTextField
색상 JLabel, JTextField
β€˜λ³€κ²½β€™ λ²„νŠΌ JButton

[ν‘œ 2] 속성 페인의 속성

4. λ§ˆμΈλ“œλ§΅ 페인의 μš”κ΅¬ 사항

λ§ˆμΈλ“œ λ§΅ νŽ˜μΈμ—μ„œ μ²˜λ¦¬ν•΄μ•Ό ν•  마우슀 μ΄λ²€νŠΈλŠ” [ν‘œ 3]을 λ”°λ₯Έλ‹€

이벀트 μ•‘μ…˜
λ…Έλ“œμ˜ 선택 μ„ νƒλœ λ…Έλ“œμ˜ 속성은 속성 νŽ˜μΈμ— ν‘œμ‹œλ˜λ©°, λ…Έλ“œμ˜ 배경색을 λ°˜μ „μ‹œν‚¨λ‹€.
λ…Έλ“œμ˜ 크기 λ³€κ²½ 1. νŠΉμ • λ…Έλ“œμ˜ β€˜μƒ/ν•˜/쒌/우 λͺ¨μ„œλ¦¬β€™ ν˜Ήμ€ β€˜μƒ/ν•˜/쒌/우 μ—°κ²°μ β€™μ—μ„œ 마우슀λ₯Ό ν”„λ ˆμŠ€ ν•œ ν›„, 마우슀 λ“œλž˜κ·Έλ₯Ό ν†΅ν•˜μ—¬ 마우슀 포인트λ₯Ό μ΄λ™μ‹œν‚¨ μƒνƒœμ—μ„œ 마우슀λ₯Ό 릴리즈 ν•˜κ²Œλ˜λ©΄ κ·Έ μœ„μΉ˜λ‘œ λ…Έλ“œμ˜ λͺ¨μ„œλ¦¬κ°€ λ³€κ²½λ˜λ„λ‘ ν•œλ‹€. 2. λ…Έλ“œμ˜ 크기 λ³€κ²½ μ΄λ²€νŠΈλŠ” λ…Έλ“œ μ‚¬μ΄μ˜ 연결선이 λ‹€μ‹œ 그렀지도둝 ν•œλ‹€.

[ν‘œ 3] λ§ˆμΈλ“œλ§΅ νŽ˜μΈμ—μ„œμ˜ 마우슀 이벀트

λ…Έλ“œ μ»΄ν¬λ„ŒνŠΈ(JLabel)은 λ§ˆμΈλ“œλ§΅ 페인(JPanel)μœ„μ— 올렀 λ†“λŠ” 방식(add() λ©”μ†Œλ“œ 호좜)을 μ·¨ν•˜λ„λ‘ ν•œλ‹€. κ·ΈλŸ¬λ‚˜, λ…Έλ“œ μ‚¬μ΄μ˜ 연결선은 λ§ˆμΈλ“œλ§΅ νŽ˜μΈμ—μ„œ 직접 그리도둝 κ΅¬ν˜„ν•œλ‹€.각 λ…Έλ“œλŠ” [κ·Έλ¦Ό 2]와 같이 4개의 연결점을 κ°–λŠ”λ‹€. 각 연결점은 μ—°κ²°μ„ μ˜ μ‹œμž‘ 및 끝에 ν•΄λ‹Ήν•œλ‹€. 마우슀 μ΄λ²€νŠΈμ— μ˜ν•œ λ…Έλ“œ μœ„μΉ˜ 이동 ν˜Ήμ€ 속성 νŽ˜μΈμ—μ„œ 속성 변경에 μ˜ν•œ 크기 및 μœ„μΉ˜κ°€ λ³€κ²½ 될 경우 μ—°κ²°μ„ μ˜ μ‹œμž‘κ³Ό 끝 점을 μƒˆλ‘œμ΄ 계산 ν•œ ν›„, κ·Έ 결과에 따라 연결선이 λ‹€μ‹œ 그렀지도둝 κ΅¬ν˜„ν•œλ‹€.

5. 메뉴 λ°”, 툴 λ°”μ˜ μš”κ΅¬ 사항

메뉴 바와 툴 λ°”μ—μ„œ μ²˜λ¦¬ν•΄μ•Ό ν•  μ•‘μ…˜μ€ [ν‘œ 4]λ₯Ό μ°Έκ³ .

이벀트 μ•‘μ…˜
μƒˆλ‘œ λ§Œλ“€κΈ° 1. μƒˆλ‘œμš΄ λ§ˆμΈλ“œλ§΅ νŽΈμ§‘μ„ μ‹œμž‘. 2. 이미 νŽΈμ§‘ ν˜Ήμ€ λΆˆλŸ¬λ‚Έ λ‚΄μš©μ΄ μžˆλ‹€λ©΄, ν”„λ‘œκ·Έλž¨μ΄ 처음 μ‹œμž‘ ν–ˆμ„ λ•Œμ˜ μƒνƒœλ‘œ λ˜λŒλ¦°λ‹€.
μ—΄κΈ° 파일 λ‘œλ“œ
μ €μž₯ 파일 μ €μž₯
λ‹€λ₯Έ μ΄λ¦„μœΌλ‘œ μ €μž₯ μƒˆλ‘œμš΄ 파일 생성
λ‹«κΈ° ν”„λ‘œκ·Έλž¨ μ’…λ£Œ
적용 ν…μŠ€νŠΈ νŽΈμ§‘ λ‚΄μš©μ„ λ§ˆμΈλ“œ λ§΅ νŽ˜μΈμ— 적용
λ³€κ²½ 속성 페인 λ³€κ²½ λ‚΄μš©μ„ λ§ˆμΈλ“œ λ§΅ νŽ˜μΈμ— 적용

λͺ¨λ“  μ΄λ²€νŠΈλŠ” 메뉴 바와 툴 λ°” λͺ¨λ‘μ—μ„œ λ°œλ™ κ°€λŠ₯ν•˜λ„λ‘ κ΅¬ν˜„. κ·ΈλŸ¬λ‚˜, 각 μ΄λ²€νŠΈμ— ν•΄λ‹Ή ν•˜λŠ” μ•‘μ…˜μ€ ν•œ 벌만 κ΅¬ν˜„ν•˜μ—¬ 메뉴 λ°”μ—μ„œ λ°œλ™ λ˜μ—ˆκ±΄ 툴 λ°”μ—μ„œ λ°œλ™ λ˜μ—ˆκ±΄ λ™μΌν•œ μ•‘μ…˜ ꡬ ν˜„λΆ€κ°€ μ‹€ν–‰ λ˜λ„λ‘ ν•œλ‹€.

6. λ§ˆμΈλ“œλ§΅ λͺ¨λΈμ— λŒ€ν•œ μš”κ΅¬ 사항

λ§ˆμΈλ“œλ§΅ νŽ˜μΈμ—μ„œ μΌμ–΄λ‚˜λŠ” μ—λ””νŒ… 상황을 보관 ν•  자료 κ΅¬μ‘°λŠ” β€œνŠΈλ¦¬ λͺ¨λΈβ€μ„ μ‚¬μš©ν•œλ‹€. 이 트리의 각 λ…Έλ“œλŠ” λ§ˆμΈλ“œλ§΅ λ…Έλ“œ(JLabel) ν•˜λ‚˜λ₯Ό μ˜λ―Έν•˜λ©° λ”°λΌμ„œ, 이 λ…Έλ“œμ—λŠ” 속성 페인 에 λ””μŠ€ν”Œλ ˆμ΄ ν•  λ‚΄μš©μ„ λͺ¨λ‘ λ‹΄κ³  μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ μ΄λ²€νŠΈμ— μ˜ν•΄ λ…Έλ“œμ˜ 속성이 λ³€κ²½λ˜λ©΄ 이 트리 λ…Έλ“œ λ˜ν•œ 정보가 κ°±μ‹ λ©λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ μž‘μ—… λͺ©λ‘

일정 관리

일자 솑무솑 쑰은진
5/15 ν”„λ‘œμ νŠΈ μ—­ν•  λ°°λΆ„, κ·Έλž˜ν”„, 메뉴 및 νˆ΄λ°” μ œμž‘ ν”„λ‘œμ νŠΈ μ—΄ν•  λ°°λΆ„, μ–‘ μ˜† νŒ¨λ„ μ œμž‘ 및 μ €μž₯ 파일 ꡬ성
5/18 Frame μ œμž‘, 메뉴 및 νˆ΄λ°” κΈ°λ³Έ ν‹€μ œμž‘ μ–‘ μ˜† νŒ¨λ„ μ œμž‘ 및 μ‚½μž… μ™„λ£Œ
5/28 메뉴 및 νˆ΄λ°” 생성 κ°„λž΅ν™” tree ꡬ쑰 μ‚¬μš©ν•˜μ—¬ 객체 생성 μ‹œλ„
6/5 mind map pane ꡬ역 λŒ€λž΅ ꡬ성 text editor pane의 μ •λ³΄λ‘œ λ ˆμ΄λΈ”μƒμ„±
6/7 tree 객체둜 κ·Έλž˜ν”½ κ΅¬ν˜„ μ‹œλ„ tree ꡬ쑰 νŠΈλž˜λ²„μŠ€ μ‹œλ„
6/9 mind map pane 에 μœ„μΉ˜ν•  Label의 μ’Œν‘œ κ°’ 계산 μ‹œλ„, Frame에 λŒ€ν•œ Action listener 메뉴바, νˆ΄λ°”μ— μ‚½μž… tree ꡬ쑰 νŠΈλž˜λ²„μŠ€ μ™„λ£Œ, tree μ΄μš©ν•˜μ—¬ 객체 생성, 및 각 객체의 높이 κ°’ , μ΅œμ’… λ…Έλ“œ 수 계산
6/11 각 λ ˆμ΄λΈ”μ„ λˆŒλ €μ„ λ•Œ Attribute pane 에 속성이 보이도둝 ν•˜λŠ” AttributeMouseListener 생성 tree μ΄μš©ν•˜μ—¬ 객체 생성 ν›„ 적용 λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ, mind map pane에 λ ˆμ΄λΈ” 생성 성곡.
6/12 Treeν˜•νƒœλ‘œ mind map pane에 λ§ˆμΈλ“œ λ§΅ ꡬ성 Attritbute Pane 의 λ³€κ²½ λ²„νŠΌ ν™œμ„±ν™” 성곡.
6/13 mind map pane의 λ ˆμ΄λΈ” λ“œλž˜κ·Έ μ‹œ 이동 성곡. λ ˆμ΄λΈ”κ³Ό λ ˆμ΄λΈ” 사이 μ—°κ²° 성곡 μ΅œμ’… 파일 μ €μž₯, μ—΄κΈ° 성곡, μƒˆλ‘œλ§Œλ“€κΈ° μˆ˜μ • 성곡
6/14 λ³΄κ³ μ„œ μž‘μ„±, μ˜ˆμ™Έμ²˜λ¦¬ μ‚½μž… μ΅œμ’… 파일 μ €μž₯, μ—΄κΈ° 성곡, μƒˆλ‘œλ§Œλ“€κΈ° μˆ˜μ • 성곡

About

πŸ’‘ 뿌리뿌리 : java swing을 μ΄μš©ν•œ λ§ˆμΈλ“œλ§΅ ν”„λ‘œκ·Έλž¨ πŸ’‘

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages