목차
추천의 글 6
저자 소개 ... 7
감사의 글 ... 8
옮긴이의 말 ... 10
이 책을 읽기 전에 ... 23
들어가며 ... 29
1부 그래픽스와 GUI 기초
   1장 데스크탑 자바 그래픽스 API: 스윙, AWT, 자바 2D ... 36
      추상 윈도우 툴킷(AWT) ... 37
      자바 2D ... 37
      스윙 ... 38
   2장 스윙 렌더링 기초 ... 39
      이벤트 ... 40
      스윙 페인트 ... 41
        비동기식 리페인트 요청 ... 42
        동기식 페인트 요청 ... 43
      스윙 렌더링 ... 44
paintComponent() ... 46
paint() ... 49
setOpaque() ... 52
      이중 버퍼링 ... 53
      스레드 다루기 ... 56
        스레드 모델 ... 58
        타이머와 이벤트 해석 스레드 ... 63
        SwingWorker를 사용한 간편한 스레드 활용 ... 64
        스레드 관련 내용 요약 ... 68
   3장 그래픽스 기초 ... 69
      자바 2D ... 69
      렌더링 ... 71
        그래픽스 객체 얻기 ... 72
        그래픽스 상태 ... 75
        이미지 확대축소 관련 힌트 ... 80
        도형 안티앨리어스 힌트 ... 83
        텍스트 안티앨리어스 힌트 ... 84
        그래픽 기본요소 ... 101
   4장 이미지 ... 119
      이미지 타입 ... 120
      BufferedImage ... 123
      이미지 확대축소 ... 126
        품질과 성능 ... 130
        getFasterScaledInstance(): 더 빠르고 좋은 품질의 확대축소 이미지를 제공하는 유틸리티 ... 139
   5장 성능 ... 143
      클립 사용 ... 143
      호환 이미지 ... 149
        유의 사항 ... 150
        관리되는 이미지란? ... 151
        이미지 호환 ... 152
      관리되는 이미지 ... 154
        DataBuffer 객체 접근 ... 157
        이미지 내의 잦은 렌더링 ... 161
      중간생성 이미지 ... 162
        기본 개념 ... 163
        동작 원리 ... 164
        유의사항 ... 170
        요약 ... 172
      기본 렌더링 최적화 ... 172
      성능 측정 ... 174
      명령행 플래그 ... 174
        렌더링 ... 176
        성능 디버깅 ... 179
2부 고급 그래픽 렌더링
   6장 컴포지트 ... 182
      알파 컴포지트 ... 182
      알파 컴포지트의 12 규칙 ... 185
        Clear ... 186
        Dst ... 186
        DstAtop ... 187
        DstIn ... 187
        DstOut ... 188
        DstOver ... 188
        Src ... 189
        SrcAtop ... 189
        SrcIn ... 190
        SrcOut ... 190
        SrcOver ... 191
        Xor ... 191
      AlphaComposite 생성과 설정 ... 192
      AlphaComposite의 일반적인 사용법 ... 194
        Clear ... 194
        SrcOver ... 194
        SrcIn ... 195
      AlphaComposite 사용시 주의사항 ... 197
      자신만의 컴포지트 작성 ... 200
        Add 컴포지트 ... 200
        CompositeContext 구현 ... 203
        픽셀 합성 ... 205
      요약 ... 207
   7장 그래디언트 ... 208
      이중 선형 그래디언트 ... 208
      정규 그래디언트를 활용한 특수 효과 ... 211
      다단 선형 그래디언트 ... 216
      방사형 그래디언트 ... 218
      그래디언트 최적화 ... 222
        그래디언트 캐시 ... 223
        더 똑똑한 캐시 ... 224
        반복되는 그래디언트 최적화 ... 225
   8장 이미지 프로세싱 ... 228
      이미지 필터 ... 228
      BufferedImageOp로 이미지 처리하기 ... 229
      AffineTransformOp ... 232
      ColorConvertOp ... 233
      ConvolveOp ... 235
        커널 구성 ... 237
        경계에 대한 작업 ... 239
      LookupOp ... 240
      RescaleOp ... 242
      사용자정의 BufferedImageOp ... 243
        기반 필터 클래스 ... 244
        색조 변경 필터 ... 245
      필터 성능에 대한 이야기 ... 251
      요약 ... 252
   9장 글라스 페인 ... 253
      글라스 페인에 그리기 ... 255
        최적화된 글라스 페인 페인팅 ... 257
      입력 이벤트 가로채기 ... 260
        마우스 이벤트 관련 주의사항 ... 262
   10장 레이어드 페인 ... 267
      레이어드 페인 레이어 ... 268
      단일 레이어 내에서 컴포넌트 정렬 ... 273
      레이어드 페인과 레이아웃 ... 274
      여러 레이아웃을 사용해서 JLayeredPane 대체하기 ... 275
   11장 리페인트 매니저 ... 279
      스윙이 너무 똑똑할 때 ... 279
      RepaintManager와 첫 대면 ... 281
        RepaintManager 관리 ... 282
      RepaintManager로 구현한 반사상 ... 283
        반사상을 위한 공간 만들기 ... 283
        반사상 그리기 ... 287
        더 바보같은, 그래서 더 똑똑한 RepaintManager ... 290
      요약 ... 292
3부 애니메이션
   12장 애니메이션 기초 ... 294
      시간에 대해서 ... 294
      기초 개념 ... 294
        프레임 기반 애니메이션 ... 294
        프레임 비율 ... 296
        시간 기반 모션 ... 297
      타이밍(그리고 플랫폼 타이밍 유틸리티) ... 304
        '지금 몇시죠?' ... 305
        '모닝콜을 부탁해요.' ... 308
        '다시 깨워줘요. 또다시. 또다시.' ... 310
      해상도 ... 319
        System.currentTimeMillis()와 System.nanoTime()의 해상도 ... 322
        슬립 해상도 ... 324
        타이머 해상도 ... 330
        해상도에 대한 해상도 ... 332
      스윙 애플리케이션 움직이게 하기 ... 333
        움직이는 그래픽 ... 333
        움직이는 GUI ... 336
        컨테이너 수준에서 다루기 ... 343
      요약 ... 348
   13장 매끄러운 움직임 ... 349
      배경: 왜 애니메이션이 어색하게 보일까? ... 349
      애니메이션이 버벅거리는 원인과 부드럽게 만드는 법 ... 350
        타이밍이 (거의) 모든 것이다 ... 351
        색상: 차이가 무엇일까? ... 355
        수직 회기: 동기화된 감각 ... 366
      SmoothMoves: 데모 ... 371
      그래픽스 객체 생성 ... 371
        타이머 실행 ... 371
        렌더링 ... 373
        렌더링 옵션 ... 374
      요약 ... 378
   14장 타이밍 프레임워크: 기초 ... 380
      소개 ... 380
      핵심 개념 ... 382
        Animator 클래스 ... 383
        콜백 ... 385
        지속시간 ... 387
        반복 ... 388
        해상도 ... 389
        시작 동작 ... 390
      보간 ... 398
        가속과 감속 ... 398
        보간자 ... 403
      요약 ... 416
   15장 타이밍 프레임워크: 고급 기능 ... 417
      트리거 ... 417
        개념과 사용법 ... 418
        트리거 상위클래스 ... 419
        내장 트리거 ... 420
      프로퍼티 설정자 ... 431
        PropertySetter 클래스 ... 435
        Evaluator ... 440
      키프레임 ... 443
      요약 ... 462
4부 이펙트
   16장 사용목적 ... 464
      블러 ... 464
        정적 이펙트 ... 464
        간단한 블러 ... 466
        가우시안 블러 ... 469
        성능향상 기법 ... 474
      반사 ... 475
        사용목적 ... 475
        반사 그리기 ... 476
        블러 적용 반사 ... 477
      드롭 섀도우 ... 478
        사용 목적 ... 478
        간단한 드롭 섀도우 ... 479
        사실적인 드롭 섀도우 ... 481
      강조 ... 483
        사용목적 ... 483
        명도 높이기 ... 485
        스팟라이트 ... 487
        가독성 개선을 위한 텍스트 강조 ... 489
      샤픈 ... 491
        사용목적 ... 491
        단순 샤픈 ... 492
        언샤프 마스크 ... 495
        축소된 이미지에 샤픈 적용 ... 496
      요약 ... 499
   17장 동적 이펙트 ... 500
      움직임 ... 500
        사용목적 ... 500
        갑니다, 갑니다, 넘어갔습니다! ... 503
      페이드 ... 506
        사용목적 ... 506
        페이드 전략 ... 508
        AlphaComposite 페이드 ... 509
        색상 페이드 ... 510
        크로스페이드 ... 512
        페이드 쉽게 하기 ... 513
      펄스 ... 513
        사용목적 ... 513
        펄스 느끼기 ... 515
        자동 백열 ... 518
        약동하는 펄스 ... 522
      스프링 ... 524
        사용목적 ... 524
        스프링 대활약 ... 526
      모핑 ... 529
        사용목적 ... 529
        버튼 모핑 ... 531
      요약 ... 535
   18장 애니메이션 장면전환 ... 536
      애플리케이션 상태를 끊김없이 전환하기 ... 536
        기본 개념 ... 537
      애니메이션 장면전환: 라이브러리 ... 540
        애니메이션 애플리케이션 상태 ... 540
        GUI 상태 ... 540
        API ... 541
        이펙트 ... 548
        GUI 구조 ... 562
        그림과 이미지홀더 ... 562
        ScreenTransition ... 565
      애니메이트 장면전환: 스윙에게 대체 어떤 일을 시키고 있을까? ... 566
        몰래 다음 화면 채비하기 ... 567
        레이아웃을 펼쳐보자: 레이아웃을 서서히 변화시키기 ... 568
        스윙을 춤추게 하자: 성능 ... 569
      요약 ... 569
   19장 화려하고 멋진 리치 클라이언트 탄생 ... 570
      에어리스 ... 570
        에어리스 실행 ... 571
        직접 해보기 ... 572
        작업흐름도 페이퍼 디자인 ... 572
      시안 ... 574
      화면 구성 디자인 ... 576
      목업 ... 577
      목업에서 코드까지 ... 578
        레이어 ... 578
        블렌딩 모드 ... 580
        안내선 ... 581
      난 예술가가 아니라구! ... 582
      알맞은 색상 선택 ... 583
      디자인 서적 읽기 ... 585
      요약 ... 586
맺음말 ... 587
찾아보기 ... 591
닫기