# Copilot Instructions (Java Swing Calculator)
## Project Context
- Type: Desktop GUI with Java Swing
- Goal: A minimal four-operator calculator with clear, backspace, decimal point, and equals.
- Tech: Pure JDK (no Maven/Gradle). Compile with VS Code tasks (javac). Run with launch config (java).
## Coding Rules
- Use package `app`.
- Single main class: `Calculator`.
- UI: JFrame + JTextField (non-editable) + JButtons in GridLayout.
- Logic: Use `BigDecimal` for operations and avoid floating-point rounding errors.
- Operators: `+`, `-`, `×`, `÷`, `=`.
- Special keys: `C` (clear all), `←` (backspace), `.` (decimal).
- Behavior:
- Append digits/decimal to current input.
- On operator press: if there is a pending operator, resolve first; then set new operator.
- Handle divide-by-zero gracefully by showing "Error" and requiring clear.
- Trim trailing zeros for display where appropriate.
- Keyboard shortcuts (optional): digits, `+ - * /`, `Enter`(=), `Backspace`, `Escape`(clear).
- UI/UX:
- Display field aligned to the right.
- Disable multiple decimals in one number.
- Ensure buttons are focusable as needed for keyboard input.
## File Layout
- `src/app/Calculator.java` — main entry & entire app.
## Build & Run (VS Code)
- Build: Terminal → Run Task → `Build (javac)`
- Run: `F5` or Run → Start Debugging (launch config "Run Calculator")
## Testing Notes
- Try sequences like:
- `12 + 7 =` → `19`
- `5 ÷ 0 =` → `Error` then `C` to reset
- `3 . 1 4 + 2 =` → `5.14` (no double decimals)
- `9 × 9 =` → `81`, then `× 2 =` → `162`
## Non-Goals
- No scientific functions, no external libs, no persistence.
## Style
- Clear, readable, small methods.
- Comments where logic is not obvious.- 터미널에서 컴파일:
javac -d out src/app/Calculator.java
- 실행:
java -cp out app.Calculator
- 빌드: 터미널 → Run Task →
Build (javac) - 실행: F5 또는 Run → Start Debugging (launch config "Run Calculator")
- +, -, ×, ÷, = 연산
- C(전체 초기화), ←(백스페이스), .(소수점)
- 0으로 나누기 시 "Error" 표시, C로만 해제
- 소수점 중복 입력 방지, 우측 정렬 표시
- 키보드 단축키 지원(숫자, 연산자, Enter, Backspace, Escape)
12 + 7 =→195 ÷ 0 =→Error후C로 초기화3 . 1 4 + 2 =→5.149 × 9 =→81, 이어서× 2 =→162
lib/json-20250517.jar(org.json) 파일이 lib 폴더에 있어야 합니다.
javac -cp lib/json-20250517.jar -d out src/app/MovieAlbum.javajava -cp lib/json-20250517.jar:out app.MovieAlbum- 영화 제목 입력 후 검색 시 OMDb API에서 포스터 이미지를 최대 5장까지 앨범처럼 표시
- 이미지는 인터넷에서 실시간 다운로드
- 검색 결과 없으면 안내 메시지 표시
- OMDb 무료 API 키(thewdb) 사용 (상업적 용도 불가)
- macOS에서 한글 입력 시 경고 메시지가 뜰 수 있으나, 기능에는 영향 없음
-
터미널에서 다음 명령어로 컴파일:
javac -d out src/app/Calculator.java
-
실행:
java -cp out app.Calculator
- 빌드: 터미널 → Run Task →
Build (javac) - 실행: F5 또는 Run → Start Debugging (launch config "Run Calculator")
- +, -, ×, ÷, = 연산
- C(전체 초기화), ←(백스페이스), .(소수점)
- 0으로 나누기 시 "Error" 표시, C로만 해제
- 소수점 중복 입력 방지, 우측 정렬 표시
- 키보드 단축키 지원(숫자, 연산자, Enter, Backspace, Escape)
12 + 7 =→195 ÷ 0 =→Error후C로 초기화3 . 1 4 + 2 =→5.149 × 9 =→81, 이어서× 2 =→162






