목차
Part 1 자바 프로그래밍
Chapter 1 자바 개요 ... 37
자바 소개 ... 37
자바의 의미 ... 38
자바의 특성 ... 39
플랫폼 독립성 ... 39
보안 ... 40
편리한 자바 언어와 강력한 API ... 40
자바의 역사 ... 42
자바의 지나간 이야기 ... 46
자바 플랫폼 ... 53
개요 ... 53
JDK 1.3 플랫폼들 ... 55
웹 브라우저 내의 자바 ... 56
자바 OS ... 57
표준판 자바(Java Standard Edition) ... 57
엔터프라이즈 자바(Java 2 Enterprise Edition, J2EE) ... 58
마이크로 자바(Java 2 Enterprise Edition, J2EE) ... 58
표준 자바 2(JDK 1.3) 플랫폼 ... 59
개요 ... 59
HotSpot 자바 실행환경 ... 60
기본 라이브러리 ... 61
JFC ... 62
엔터프라이즈 라이브러리 ... 64
표준 확장 라이브러리 ... 66
JDK 설치(윈도 95/98) ... 67
JDK 1.3×내려받기 ... 67
JDK 설치 ... 68
환경 변수 설정 ... 69
JDK 테스트하기 ... 70
Chapter 2 자바 프로그래밍 개요 ... 71
컴파일과 실행 ... 71
애플릿 vs 애플리케이션 ... 75
자바 프로그래밍 개요 ... 77
기본 구성 요소 ... 79
Chapter 3 데이터 형, 문장과 블록 ... 83
데이터 형 ... 83
기본형 다루기 ... 84
정수형 ... 85
실수형 ... 87
논리형 ... 88
배열 다루기 ... 88
스트링(String) 다루기 ... 91
연산자(Operator) ... 93
산술 연산자(Arithmetic Operators) ... 93
관계 연산자(Relational Operators) ... 96
조건 연산자(Conditional Operators) ... 97
비트 연산자(Bitwise Operator) ... 100
대입 연산자 ... 103
기본형의 형변환(Conversions & Promotions) ... 103
Instanceof 연산자 ... 104
식(Expression) ... 105
문장과 블록 ... 107
제어문 ... 108
조건문 if-else ... 108
조건문 switch - case ... 110
반복문 for ... 111
반복문 while ... 113
분기문 break와 continue ... 114
분기문 return ... 116
Chapter 4 객체지향 프로그래밍 ... 117
개념 ... 117
객체와 클래스 ... 117
OOP 프로그래밍 ... 120
클래스와 객체 ... 124
클래스 다루기 ... 124
클래스의 선언 ... 127
클래스 본체(Class Body)와 초기화 ... 128
필드 ... 130
메소드 ... 133
생성자 ... 134
정적 필드와 정적 메소드 ... 138
객체 생성과 사용 ... 140
인터페이스 ... 142
클래스와 인터페이스 확장 ... 148
클래스 확장 ... 148
참조 형변환(Reference Conversion) ... 150
광역화 참조 형변환(Widening Reference Conversion) ... 150
협소화 참조 형변환(Narrowing Reference Conversion) ... 151
메소드 재정의와 가상함수 ... 153
필드 감추기 ... 155
super와 this ... 157
중첩 클래스(Nested class) ... 159
개념 ... 159
중첩 클래스 다루기 ... 160
중첩된 최상위 클래스(Nested Top Level Class) ... 162
멤버 클래스(Member Class) ... 163
익명 클래스(Anonymous Class) ... 167
예외 처리 ... 169
개념 ... 169
예외의 종류 ... 173
try-catch-finally 블록 ... 176
예외 처리와 분기문 ... 177
예외 전파 ... 178
사용자 정의 예외 ... 179
변수의 유효범위(Scope) ... 181
패키지 ... 184
개념 ... 184
패키지 선언과 멤버의 참조 ... 185
클래스 패스(CLASSPATH) ... 187
Chapter 5 언어와 입출력 API ... 189
개요 ... 189
문자열 관련 클래스 ... 191
String 클래스 ... 192
StringBuffer 클래스 ... 194
StringTokenizer 클래스 ... 197
래퍼(Wrapper) 클래스들 ... 199
파일과 스트림 ... 203
개요 ... 203
파일 ... 204
RandomAccessFile ... 207
스트림 개요 ... 209
바이트 스트림 ... 210
캐릭터 스트림 ... 215
스트림 토크나이저(StreamTokenizer) ... 218
시스템 관련 클래스들 ... 221
System 클래스 ... 221
Runtime 클래스 ... 224
프로세스(Process) ... 227
수학 관련 라이브러리 ... 229
Chapter 6 유틸리티 API ... 233
개요 ... 233
부가 데이터 형들 ... 234
배열(Arrays) ... 235
해시 테이블(Hashtable) ... 240
Vector ... 243
스택 ... 245
시간 관련 클래스들 ... 246
날짜(Date) ... 247
캘린더(Calendar) ... 248
기타 클래스들 ... 251
난수(Random) ... 251
Chapter 7 멀티 스레드 프로그래밍 ... 253
개요 ... 253
스레드 만들기 ... 256
멀티 스레딩 예제 ... 259
텍스트 애니메이션이 들어간 벤치마크 ... 259
행렬 연산 ... 263
스레드 제어하기 ... 265
생성/시작 가능 상태(Startable) ... 266
실행 가능 상태(Runnable) ... 266
실행 중단 상태(Not Runnable) ... 267
소멸 상태(Dead) ... 268
스레드 제어 예제 ... 268
스레드 스케줄링 ... 269
Thread 클래스 ... 271
동기화 ... 276
동기화된 메소드 ... 277
동기화 블록 ... 280
교착과 기아 ... 281
교착 예제 ... 282
상호 협조 동기화 ... 284
생산자 소비자 예제 ... 286
다중 소비자인 경우 동기화 ... 289
스레드 그룹 ... 292
Part 2 GUI 프로그래밍
Chapter 8 AWT 프로그래밍 시작 ... 297
개요 ... 297
HelloAWT ... 298
GUI 프로그래밍 시작 ... 299
GUI 프로그래밍 예제 ... 301
AWT 컴포넌트 구성 ... 306
AWT 컴포넌트 ... 308
윈도 컴포넌트들 ... 310
Window ... 311
Frame ... 312
윈도와 프레임 예제 ... 314
Dialog ... 315
FileDialog ... 317
일반 컴포넌트들(컨트롤들) ... 320
Label ... 320
Button ... 322
Scrollbar ... 323
List ... 326
Choice ... 330
Checkbox ... 331
Canvas ... 333
TextComponent ... 334
TextField ... 335
TextArea ... 337
컨테이너 컴포넌트들 ... 340
Container ... 341
Panel ... 342
ScrollPane ... 342
메뉴와 메뉴바 ... 346
메뉴 관련 클래스들 ... 347
MenuBar ... 347
Menu ... 348
PopupMenu ... 349
Menultem ... 350
CheckboxMenultem ... 351
메뉴 만들기 ... 351
간단한 메뉴바 만들기 ... 352
Chapter 9 컴포넌트 배치 ... 355
개요 ... 355
수동 배치 ... 357
레이아웃 매니저 사용 ... 359
FlowLayout ... 362
GridLayout ... 364
BorderLayout ... 366
CardLayout ... 369
GridBagLayout ... 372
컨테이너의 기본 레이아웃 매니저 ... 373
기본적인 폼 만들기 ... 373
확인 대화상자 ... 374
옵션 대화상자 ... 376
기본 응용 프로그램 폼 ... 380
Chapter 10 이벤트 처리 ... 385
개요 ... 385
AWT 1.1 이벤트 모델 ... 387
이벤트 관련 클래스와 메소드 이름 ... 390
이벤트와 이벤트 리스너들 ... 390
Action 이벤트 ... 392
ActionEvent 예제 탭 패널 만들기 ... 393
Adjustment 이벤트 ... 397
AdjustmentEvent 예제 배경색 바꾸기 ... 399
Focus 이벤트 ... 400
FocusEvent 예제 포커스 추적하기 ... 402
Item 이벤트 ... 404
Input 이벤트 ... 406
Key 이벤트 ... 407
키 이벤트 예제 키 정보 보여주기 ... 410
Mouse 이벤트 ... 413
마우스 이벤트 예제 팝업 메뉴 만들기 ... 415
MouseMotion 이벤트 ... 418
Text 이벤트 ... 418
Window 이벤트 ... 421
어댑터 클래스 사용하기 ... 422
Chapter 11 AWT 그래픽 ... 425
개요 ... 425
그래픽 컨텍스트 ... 426
좌표계 ... 426
클리핑 영역 ... 428
색 ... 430
폰트 ... 431
그리기 모드 ... 433
영역 지우기와 복사하기 ... 436
도형 그리기 ... 436
선 그리기 ... 437
사각형 그리기 ... 437
타원과 타원호 그리기 ... 438
다각형 그리기 ... 439
그림판 프로그램 : JDraw2 ... 440
FontMetrics 사용 문자열 그리기 ... 448
이미지 그리기 ... 451
화면 갱신 ... 452
더블 버퍼링 ... 455
자바 그림판 : JDraw3 ... 459
Toolkit 클래스 ... 462
이미지 다루기 ... 464
이미지 상태 추적하기 ... 467
예제 인터넷 이미지 뷰어 ... 472
Chapter 12 AWT 기타 기능 ... 477
기본적인 사운드 ... 477
애니메이션 ... 478
트리플 버퍼링 ... 479
애니메이션 스레드 ... 480
트리플 버퍼링 애니메이션 예제 : 시계 ... 481
화면 갱신률 유지 ... 485
예외 상황 처리 ... 486
고급 이벤트 처리 ... 488
저수준 이벤트와 시맨틱 이벤트 ... 488
이벤트 리스너 호출 과정 ... 489
이벤트 멀티캐스터 ... 491
컴포넌트 만들기 ... 492
이미지 버튼 만들기 ... 492
슬라이더 컨트롤 만들기 ... 495
데이터 전송과 클립보드 ... 502
자료 협상과 MIME 타입 ... 502
Data Floavor와 Representation 클래스 ... 503
클립보드 사용 ... 503
Copy/Cut/Paste 구현 과정 ... 505
문자열 전송 예제 ... 506
인쇄 ... 509
Part 3 JFC 프로그래밍 개요
Chapter 13 JFC 프로그래밍 개요 ... 515
JFC 개요 ... 516
스윙 툴킷의 특징 ... 518
교체가능한 룩앤필(Look & Feel) ... 520
경량 컴포넌트 ... 521
델리게이트 모델 ... 522
스윙 컴포넌트 구성 ... 525
스윙 프로그래밍 시작 ... 527
HelloSwing 예제 ... 527
HelloSwingEvent 예제 ... 528
기본적인 스윙 컴포넌트 사용법 ... 530
스윙 컴포넌트 : JComponent 클래스 ... 532
스윙 상수들 ... 535
Chapter 14 스윙 액세서리 ... 537
개요 ... 537
이미지 아이콘(Image Icon) ... 538
툴팁(ToolTip) ... 539
Border ... 540
EmptyBorder ... 541
LineBorder ... 542
EtchedBorder ... 543
BevelBorder와 SoftBevelBorder ... 544
MatteBorder ... 545
TitledBorder ... 546
CompoundBorder ... 549
Chapter 15 스윙 기본 컴포넌트 ... 551
개요 ... 551
JLabel ... 552
AbstractButton ... 554
JButton ... 558
ButtonGroup ... 559
JToggleButton ... 560
JRadioButton ... 562
JCheckBox ... 564
JScrollBar ... 564
JSlider ... 566
JProgressBar ... 571
JList ... 573
기본 설정의 JList 만들기 ... 577
고유 JList 만들기 ... 580
JComboBox ... 584
기본 설정 JComboBox ... 588
Chapter 16 스윙 텍스트 컴포넌트 ... 591
개요 ... 591
JTextComponent ... 592
JTexField & JPasswordField ... 595
JTextArea ... 598
JEditorPane ... 602
웹 브라우저 만들기 ... 605
JTextPane ... 608
AttributeSet 사용 예제 ... 612
Chapter 17 스윙 패널 ... 615
개요 ... 615
JPanel ... 616
JScrollPane ... 619
scrollPane 예제 ... 622
JTabbedPane ... 625
JTabbedPane 예제 ... 627
JSplitPane ... 630
JSplitPane 다중 분할 예제 ... 632
JLayeredPane ... 635
JLayeredPane 예제 ... 638
Chapter 18 스윙 프레임과 다이얼로그 ... 641
개요 ... 641
JRootPane ... 642
JWindow ... 644
JFrame ... 645
JFrame의 JRootPane 사용 예제 ... 647
JDesktopPane & JInternalFrame ... 649
JInternalFrame ... 649
JDesktopPane ... 652
JDesktopPane & JIneternalFrame 예제 ... 654
JDialog ... 658
JOptionPane ... 659
MessageDialog ... 661
ConfirmDialog ... 662
InputDialog ... 664
JFileChooser ... 665
필터가 설정된 파일 선택창 예제 ... 668
JColorChooser ... 671
Chapter 19 스윙 메뉴와 툴바 ... 673
개요 ... 673
JMenuBar, JMenu & JMenultem ... 674
JMenultem의 주요 생성자와 메소드 ... 674
JMenu의 주요 생성자와 메소드 ... 675
JMenuBar 주요 생성자와 메소드 ... 676
텍스트 메뉴 만들기 예제 ... 677
단축키가 설정된 메뉴 만들기 ... 679
Help 메뉴 만들기 ... 682
JCheckBoxMenultem & JRadioButtonMenultem ... 682
JCheckBoxMenultem 주요 생성자와 메소드 ... 683
JRadioButtonMenultem 주요 생성자와 메소드 ... 684
두 종류의 메뉴 아이템을 포함하는 메뉴 만들기 예제 ... 684
JPopupMenu ... 687
JPupupMenu 만들기 예제 ... 689
JToolBar ... 691
버튼과 콤보박스가 포함된 툴바 만들기 예제 ... 693
Chapter 20 스윙 트리와 테이블 ... 695
개요 ... 695
JTree ... 696
기본적인 트리 만들기 ... 697
TreeNode를 이용한 트리 만들기 ... 699
기본적인 트리 제어 ... 702
트리 제어 예제 ... 704
열과 경로 다루기 ... 706
선택된 노드 얻기 ... 708
기본 에디터의 사용 ... 708
이벤트 처리하기 ... 709
고급 JTree 사용법 ... 710
기본 트리 모델 사용하기 ... 710
트리 모델 예제 ... 712
선택 모델 사용하기 ... 715
기본 랜더러 ... 715
고유 JTree 만들기 - 탐색트리 ... 717
JTable ... 723
기본적인 테이블 만들기 ... 724
모델과 컨트롤러 설정 ... 726
JTable 색과 모양 정하기 ... 726
선택 모드 정하기 ... 728
선택 영역 알아내기 ... 729
고급 JTable 사용법 ... 730
테이블 모델 ... 730
테이블 모델 예제 ... 731
테이블 셀 에디터 ... 735
셀 랜더러 ... 736
Chapter 21 JFC 기타 기능 ... 737
고유 그리기 작업 ... 737
BoxLayout & Box ... 738
Box ... 739
Timer ... 742
UIManager ... 745
Part 4 네트워크 프로그래밍
Chapter 22 네트워크 프로그래밍 개요 ... 753
개요 ... 753
TCP와 UDP ... 756
TCP 프로토콜 ... 756
UDP 프로토콜 ... 757
서버/클라이언트 ... 759
포트와 소켓 ... 760
IP 주소와 DNS ... 762
URL ... 765
URL 클래스 ... 767
기본적인 URL 통신 ... 769
URLConnection의 사용 ... 771
Get 메소드 질의 보내기 ... 772
Post 메소드 질의 보내기 ... 773
Chapter 23 소켓 프로그래밍 ... 777
개요 ... 777
자바 소켓 개요 ... 779
서버 소켓 ... 783
메아리 서버 예제 ... 785
동기화된 메아리 클라이언트 ... 787
다중 클라이언트 지원 서버 ... 791
비동기 채팅 클라이언트/서버 ... 796
채팅 서버 ... 797
채팅 클라이언트 ... 801
통신 프로토콜 ... 805
HTTP 프로토콜 ... 806
HTTP 클라이언트 제작 ... 807
프로토콜 기반의 채팅 ... 810
간단한 채팅 프로토콜 ... 810
채팅 서버 ... 813
소켓 옵션들 ... 823
SO_RCVBUF, SO_SNDBUF 옵션 ... 825
SO_LINGER 옵션 ... 825
SO_TIMEOUT 옵션 ... 825
SO_KEEPALIVE 옵션 ... 826
TCP_NODELAY 옵션 ... 826
마치면서 ... 829
Chapter 24 데이터그램 소켓 프로그래밍 ... 831
개요 ... 831
데이터그램 소켓 프로그래밍 ... 833
데이터그램 소켓 서버/클라이언트 ... 836
멀티캐스트 소켓 프로그래밍 ... 842
멀티캐스트 채팅 ... 844
마치면서 ... 850
Chapter 25 RMI 프로그래밍 ... 851
RMI 개요 ... 852
소켓에서 RMI로의 전환 ... 853
RMI 프로그래밍 개요 ... 854
HelloRMI 인터페이스 ... 855
HelloRMIServer ... 855
스텁과 스켈리톤 만들기 ... 856
클라이언트 제작 ... 857
RMI 프로그램 실행 ... 858
RMI 채팅 ... 859
채팅 인터페이스와 채팅 클라이언트 인터페이스 ... 860
RMI 채팅 서버 ... 861
RMI 채팅 클라이언트 ... 863
RMI 채팅 실행 ... 866
Chapter 26 애플릿 프로그래밍 ... 869
개요 ... 869
애플릿 제작 개요 ... 871
HelloApplet 프로그램 ... 871
애플릿 실행 ... 872
기본적인 기법 ... 873
Applet 클래스 ... 873
매개 변수 사용하기 ... 875
프레임 사용하기 ... 877
이미지와 사운드 다루기 ... 881
애니메이션 ... 884
고급 초기화 ... 887
고급 초기화 예제 ... 889
애플릿의 마무리 ... 894
애플릿과 보안 ... 896
보안 우회 ... 899
보안 우회 예제 : 텔넷 프록시 ... 900
Chapter 27 애플릿과 브라우저의 연동 ... 907
개요 ... 907
HTML 기초 ... 908
HelloHTML ... 909
Form ... 910
FrameSet과Frame ... 913
자바 스크립트 기초 ... 914
개요 ... 914
프로그래밍 기초 ... 915
배열의 사용 ... 917
객체의 사용 ... 918
브라우저 객체의 사용 ... 919
이벤트 처리 ... 921
이벤트 처리 예제 버튼 이름 바꾸기 ... 922
이벤트 처리 예제 내비게이션 프레임 만들기 ... 923
애플릿에서 브라우저 제어 ... 926
애플릿 툴바 만들기 ... 926
애플릿 사이의 통신 ... 930
브라우저에서 애플릿 제어 ... 933
Chapter 28 자바 플러그인과 스윙 애플릿 ... 935
자바 플러그인 개요 ... 935
스윙 애플릿 제작 ... 937
스윙 애플릿에서 이미지 사용하기 ... 939
HTML 변환기(HTML Converter) ... 941
HTML Converter 설치와 실행 ... 941
HTML 파일 변환 ... 943
Part 5 고급 프로그래밍
Chapter 29 자바 컬렉션 프레임워크 ... 947
Java Collection Framework의 장점 ... 948
Java Collection Framework의 계층구조 ... 949
컬렉션 핵심 인터페이스 ... 950
Collection 인터페이스 ... 950
Set 인터페이스 ... 951
SortedSet 인터페이스 ... 952
List 인터페이스 ... 952
Map 인터페이스 ... 953
SortedMap 인터페이스 ... 954
컬렉션 부가 인터페이스 ... 955
Comparable ... 955
Comparator ... 956
Iterator ... 956
Listlterator ... 957
컬렉션 추상 구현 클래스 ... 957
AbstractCollection ... 958
AbstractSet ... 958
AbstractList ... 958
AbstractSequenceList ... 958
AbstractMap ... 958
컬렉션 구현 클래스 ... 959
HashSet ... 959
TreeSet ... 959
ArrayList ... 959
LinkedList ... 959
HashMap ... 959
WeakHashMap ... 959
TreeMap ... 959
기존의 컬렉션 클래스 ... 960
Arrays ... 961
Vector와 Stack ... 961
Enumeration ... 961
Dictionary와 Hashtable 그리고 Properties ... 961
BitSet ... 962
정적 메소드를 통한 지원 ... 962
동기화에 대한 지원 ... 962
변환 불가에 대한 지원 ... 963
알고리즘에 대한 지원 ... 963
컬렉션 프레임워크 예제 ... 963
HashSet 예제 ... 964
TreeSet 예제 ... 965
ArrayList 예제 ... 967
LinkedList 예제 ... 968
HashMap 예제 ... 970
TreeMap 예제 ... 971
다양한 알고리즘 예제 ... 972
더 나은 컬렉션 프레임워크의 이해를 위해 ... 975
Chapter 30 자바 보안 ... 977
보안의 정의 ... 977
자바 보안의 특징 ... 978
자바 언어 자체의 보안적 특성 ... 978
보안 모델을 통한 보안 ... 981
샌드박스의 구성 ... 982
바이트 코드 검증기(Bytecode Verifier) ... 982
클래스 로더(Class Loader) ... 982
접근 제어기(Access Controller) ... 982
보안 매니저(Security Manager) ... 982
보안 패키지(Security Package) ... 982
키 데이터베이스(Key Database) ... 983
클래스 로더 ... 985
클래스 로더의 분류 ... 987
원시 클래스 로더 ... 987
애플릿 클래스 로더(Applet Class Loader) ... 987
Secure 클래스 로더 ... 988
URL 클래스 로더 ... 988
보안 매니저 ... 988
신뢰받는 클래스 ... 991
샌드박스 모델의 보안 검증 ... 991
컴파일과 링크시의 보안 검증 ... 991
컴파일 타임의 보안적 검토 ... 991
링크 타임(바이트 코드 검증시)의 보안적 검토 ... 992
바이트 코드 검증 과정 ... 993
런타임시의 보안적 검증 ... 994
주요 메소드들 ... 995
파일 접근에 관련된 메소드 ... 995
네트워크 접근에 관련된 메소드 ... 996
저수준적인 제어에 관련된 메소드 ... 999
스레드에 관련된 메소드 ... 1001
시스템 자원에 관련된 메소드 ... 1002
언어상의 접근 제한에 관련된 메소드 ... 1003
보안접근에 관련된 메소드 ... 1005
접근 제어기에 관련된 메소드 ... 1006
접근 제어기 ... 1006
코드 소스(Code Source) ... 1006
퍼미션(Permissions) ... 1007
정책(Policy) ... 1012
프로텍션 도메인(Protection Domain) ... 1012
AccessController 클래스 ... 1013
Chapter 31 국제화 ... 1015
개요 ... 1015
Hellol18N ... 1017
로케일(Locale) ... 1019
ResourceBundle을 이용한 자원 관리 ... 1021
로케일과 리소스 이름 ... 1021
ResourceBundle ... 1023
프로퍼티 파일 ... 1024
리소스 번들 클래스 ... 1025
예제 국제화된 메뉴 만들기 ... 1026
포매팅 ... 1031
개요 ... 1031
NumberFormat ... 1032
고유 NumberFormat ... 1034
DateFormat ... 1035
고유 DateFormat ... 1037
Chapter 32 자바 빈 프로그래밍 ... 1039
개요 ... 1039
BDK 살펴보기 ... 1040
BeanBox 다루기 ... 1041
예제 속성 바꾸기 ... 1042
예제 저글링 ... 1043
예제 속성 바인딩(Binding) ... 1045
애플릿 만들기 ... 1046
프로그래밍 개요 ... 1047
속성 노출시키기 ... 1049
단일 속성(Simple Property) ... 1050
종속 속성(Bounded Property) ... 1053
종속 속성 예제 Slider 빈 컴포넌트 ... 1054
Chapter 33 유용한 프로그래밍 기법들 ... 1057
자바 코딩 관례 ... 1057
파일이름 ... 1057
자바 소스 파일의 구조 ... 1058
들여쓰기 ... 1059
변수와 클래스의 선언 ... 1060
문장 ... 1061
이름 붙이기 ... 1062
프로그래밍 관행 ... 1063
문서화 주석 ... 1065
HelloJavaDoc ... 1066
문서화 주석의 형태와 위치 ... 1068
태그 ... 1069
최적화 ... 1070
자바 VM 최적화 ... 1070
컴파일 ... 1071
소스 코드 최적화하기 ... 1071
Part 6 엔터프라이즈 프로그래밍
Chapter 34 JDBC 프로그래밍 ... 1075
시작하기 전에 ... 1075
개요 ... 1077
HelloJDBC ... 1078
Hello.mdb 등록 ... 1078
HelloJDBC ... 1080
드라이버 로딩 ... 1082
드라이버 종류 ... 1082
드라이버 설치 ... 1083
드라이버 로딩 ... 1084
연결 ... 1085
JDBC-URL ... 1085
DriverManager ... 1086
기본적인 질의문 처리하기 ... 1087
테이블 생성과 변경, 삭제 ... 1088
데이터 추가 갱신 ... 1090
데이터 추출하기 ... 1091
ResultSet을 이용한 정보의 추출 ... 1092
JDBC 데이터 형 변환 ... 1093
데이터 추출 예제 ... 1094
Prepared Statement ... 1095
PreparedStatement 만들기 ... 1096
질의문 수행 ... 1096
예제 ... 1097
메타 데이터 ... 1098
ResultSetMetaData 클래스 ... 1099
예제 ... 1100
GUI를 통한 DB 제어 예제 ... 1102
컴포넌트 배치 ... 1102
UserTableModel 구현 ... 1102
주 프로그램 구현 ... 1107
기타 고려할 사항들 ... 1111
스크롤 가능한 커서 사용하기 ... 1111
ResultSet 타입 정하기 ... 1112
커서를 이용한 결과 탐색 ... 1113
역방향 검색 예제 ... 1115
트랜잭션 ... 1115
예제 트랜잭션 사용 ... 1117
예외와 주의 처리 ... 1119
Chapter 35 서블릿 프로그래밍 ... 1121
개요 ... 1121
서버측 기술과 클라이언트측 기술 ... 1122
3계층 프로그래밍에서 서블릿의 역할 ... 1124
서블릿의 실행 환경 ... 1124
서블릿의 특성 ... 1125
서블릿 엔진 준비 ... 1126
아파치 JServ,jk 모듈 ... 1127
Allaire 사의 JRun ... 1128
UnifyeWave 사의 SeveletExec ... 1128
W3C의 Jigsaw 웹 서버 ... 1128
기타 ... 1128
프로그래밍 준비 ... 1129
서블릿 API 설치와 환경 설정 ... 1129
HelloServlet ... 1130
서블릿의 설치와 결과 확인 ... 1131
기본적인 서블릿 프로그래밍 ... 1131
HTTP와 서블릿 호출 ... 1131
HTTPServlet 클래스 ... 1131
HttpServletRequest와 HttpServletResponse 클래스 ... 1135
GET, POST 처리하기 ... 1136
서블릿의 실행 주기 ... 1140
로딩과 초기화 ... 1141
클라이언트 요청 처리와 스레드 모델 ... 1141
서비스 종료 ... 1143
예제 카운터 만들기 ... 1143
초기화 매개 변수 ... 1145
정보 얻기 ... 1148
ServletRequest 클래스 ... 1148
HttpServletRequest ... 1151
고급 응답 기법들 ... 1154
버퍼 사용하기 ... 1154
페이지 전환 ... 1156
페이지 갱신 ... 1157
세션 트래킹 ... 1160
세션 얻기 ... 1161
세션에 데이터 저장하고 꺼내오기 ... 1163
세션 무효화시키기 ... 1166
Part 7 미디어 프로그래밍
Chapter 36 2D 그래픽과 이미지 프로세싱 ... 1173
2D 그래픽 기초 ... 1173
자바 2D를 통한 랜더링 ... 1175
2D 그래픽 랜더링 환경(Rendering Context) ... 1175
Stroke 속성 ... 1175
Paint 속성 ... 1175
Composite 속성 ... 1176
Transform 속성 ... 1176
Clip 속성 ... 1176
Rendering Hints 속성 ... 1176
Graphics2D의 랜더링 메소드 ... 1177
기본적인 도형들 ... 1177
좌표 시스템 ... 1177
도형과 영역 그리기 ... 1178
Graphics2D 객체로의 형변환 ... 1178
기본 도형 그리기 ... 1179
java.awt.geom 패키지의 도형들 ... 1181
Line2D ... 1181
Rectangle2D ... 1181
Ellipse2D ... 1181
Arc2D ... 1181
GeneralPath ... 1182
Area ... 1183
랜더링 환경의 설정 ... 1185
Stroke 속성 ... 1186
Paint 속성 ... 1188
Color ... 1188
GradientPaint ... 1189
TexturePaint ... 1189
Composite 속성 ... 1192
Transform 속성 ... 1194
Clip 속성 ... 1197
RenderingHints 속성 ... 1199
이미지 프로세싱 ... 1202
개요 ... 1202
Bufferedlmage 클래스 ... 1203
Bufferedlmage 만들기 ... 1204
이미지 프로세싱 ... 1207
ConvolveOp ... 1208
LookupTableOp ... 1211
Chapter 37 자바와 멀티미디어의 만남, JMF ... 1215
개요 ... 1215
JMF의 탄생 배경 ... 1215
JMF의 역사 ... 1216
JMF 시작하기 ... 1217
JMF로 가능한 것 ... 1218
미디어의 특성 ... 1223
컨텐트 타입 ... 1223
트랙 ... 1223
미디어 전송 방식 ... 1223
지연시간(Latency) ... 1224
샘플링 ... 1224
인코딩, 디코딩 ... 1225
멀티플렉서, 디멀티플렉서 ... 1225
코덱 ... 1225
필터 ... 1225
JMF의 기초 ... 1225
DataSource ... 1226
TimeBase와 Clock 그리고 Duration ... 1226
Controller ... 1228
Controller의 상태변화 ... 1228
Controller의 이벤트 ... 1230
Player ... 1231
Processor ... 1232
미디어 캡처 ... 1233
Control ... 1234
Manager ... 1235
미디어 재생기 만들기 예제 ... 1238
Trivia Media Player 구현 ... 1238
윈도 95/98에서의 환경설정 ... 1239
윈도 NT에서의 환경설정 ... 1239
솔라리스에서의 환경설정 ... 1239
JPlayer ... 1245
Part 8 임베디드 프로그래밍
Chapter 38 J2ME CLDC 프로그래밍 ... 1287
개요 ... 1287
J2ME ... 1287
컨피규레이션과 프로필(Configuration & Profile) ... 1288
CDC ... 1289
CLDC ... 1290
J2ME 개발환경 ... 1292
스파트릿 프로그래밍 제작 ... 1294
HelloEvent 프로그램 ... 1296
CLDC 라이브러리 ... 1299
K Java 라이브러리 구성 ... 1303
Spotlet 계열 클래스 ... 1303
Spotlet 클래스 ... 1304
Dialog ... 1305
Graphics ... 1310
환경설정 ... 1310
그래픽 작업 ... 1311
영역 복사 ... 1313
문자열 그리기 ... 1314
비트맵 ... 1314
기본 컴포넌트들 ... 1316
Button ... 1316
CheckBox ... 1317
RadioButton과 RadioGroup ... 1319
Slider ... 1322
ValueSelector ... 1323
텍스트 관련 컴포넌트들 ... 1326
TextBox ... 1327
ScrollTextBox ... 1328
TextField ... 1331
Palm Pilot용 프로그램 개발 ... 1335
설치와 환경 설정 ... 1335
프로그램 변환 ... 1335
기타 팜 개발 정보 ... 1336
Chapter 39 J2ME MIDP 프로그래밍 ... 1337
개요 ... 1337
배경 ... 1337
MIDP 구조 ... 1339
MIDP 요구사항 ... 1340
MIDP 플랫폼들 ... 1341
개발 참조 플랫폼 ... 1341
J2ME Wireless Toolkit ... 1342
LG ez-Java 플랫폼 ... 1342
J2ME MIDP 설치와 설정 ... 1343
컴파일과 실행 ... 1344
MIDP 프로그래밍 ... 1346
라이브러리 개요 ... 1346
MIDlet ... 1348
LDC UI 라이브러리 ... 1349
MIDlet의 전체 구조 ... 1349
디스플레이 ... 1350
Displayable 컴포넌트들 ... 1351
TestBox ... 1353
List ... 1354
Form ... 1357
Alert ... 1358
아이템들 ... 1360
TextField ... 1360
Gauge ... 1362
ChoiceGroup ... 1364
메뉴와 코맨드 이벤트 처리 ... 1366
두 개의 명령만 가지는 예제 ... 1367
세 개 이상의 명령을 가지는 예제 ... 1369
고급 이벤트 처리 ... 1371
아이템 상태 리스너(ItemStateListener) ... 1371
리스트 선택 이벤트 ... 1373
Canvas ... 1374
키 이벤트 처리 ... 1374
가시 상태 변화 이벤트 ... 1375
그래픽 작업 관련 ... 1376
이벤트 처리 예제 ... 1377
그래픽 ... 1378
이미지 ... 1379
도형 그리기 ... 1382
폰트와 문자열 그리기 ... 1383
애니메이션 ... 1386
네트워크 프로그래밍 ... 1390
개요 ... 1390
HttpConnection ... 1391
HTTP 클라이언트 예제 ... 1391
Part 9 Appendix
윈도 NT/2000에서의 JDK 1.3x 환경 설정 ... 1397
윈도에서의 BDK 설치 ... 1398
Jigsaw 웹 서버 설치 ... 1400
필요한 각종 개발 툴의 위치 ... 1402
블루엣 1.5 평가판 설치와 사용법 ... 1405
닫기