Java編程詞典第3部分:SQL範例庫概覽
SQL語言基礎部分,涵蓋了基礎的查詢操作,如數據的查找、篩選和理解SQL語句的基本結構和語法。
常規數據查詢模塊,提供實用的查詢示例,幫助開發者快速獲取和理解數據表中的信息。
高級數據過濾模塊深入探討更復雜的查詢條件和邏輯,如使用JOIN、GROUP BY和HAVING等高級功能。
字元串查詢模塊關注SQL中的字元串操作,如何使用LIKE、REGEXP等進行精確或模糊的字元串匹配。
日期查詢模塊則講解如何處理日期和時間,包括日期范圍查詢和時間戳操作。
數據排序模塊則介紹如何根據特定欄位對數據進行排序,提升數據檢索的效率。
模塊資源庫
項目資源庫
Java編程詞典個人版是明日科技為Java各級程序開發人員和編程愛好者開發的專業編程資源庫,它提供了海量的開發資源、豐富的實例項目、靈活的查詢方式、多樣的學習模式,既可以幫助零基礎者快速入門,又可以幫助有一定基礎者快速提升開發水平,更適合各級程序開發人員隨時檢索查詢,隨時粘貼復用。Java編程詞典個人版是程序開發人員的左膀右臂,軟體工程師必備的專業指南。
2. java編程:怎麼用JSP(javabean)上傳一張圖片到伺服器的指定文件夾呢
先導smartupload jar包!在寫form表單<input tyle="file" enctype="multipart/form-data" method="post">enctype和method別寫錯了!
寫一個簡單的吧!
<%page import="com.jspsmart.upload.*"%>
<%
SmartUpload su=new SmartUpload ();//初始化SmartUpload對象
try{ //捕獲他可能出現的異常
su.upload();//執行上傳
}catch(Exception ex){
ex.printStackTrace;
}
File file=su.getFile().getFile(0); //(得到單個的上傳文件的信息)這里得到的File對象是你到的jar包里的com.jspsmart.upload.File類型 別寫成IO 裡面的File了
String filepath="upload\\"; //在這之前要在你所建項目的目錄下單建一個upload文件夾
filepath+=file.getFileName();
file.saveAs(filepath,SmartUpload.SAVE-VIRTUAL);
不知道是否建了與它相對應的資料庫表啊?
不懂得再玩吧!
%>
3. 如何優化java動畫編程中的顯示效果
Java動畫編程有多種實現方法,但它們實現的基本原理是一樣的,即在屏幕上畫出一系列的幀來造成運動的感覺。Java多線程技術是Java動畫編程中普遍運用的技術,它在控制動畫程序的流程和動畫的顯示效果方面起著重要的作用。Java動畫編程中的動畫閃爍和圖像殘缺不全等現象,是Java程序員經常遇到的問題。本文以作者應用實常式序為基礎,闡述如何運用多線程、重載Update、雙緩沖和圖像跟蹤等技巧來解決這類問題,以達到動畫顯示的最佳效果。
Java多線程技術
Java多線程技術簡介
目前,線程(Thread)已經為許多操作系統和應用開發系統所採用。線程是程序的單個控制流,具有順序程序的特點。但是,線程不是一個程序,它僅僅是程序的一個執行序列。線程具有很強的並發功能,在同一時刻可以有多個線程同時處於執行狀態。線程是動態的,具有一定的生命周期,分別經歷從創建、執行、阻塞、直到消亡的過程。Java語言對多線程編程的支持有兩種實現方法:一種是直接繼承Thread類,另一種是實現Runnable介面。Thread類提供了對線程的控制方法,如start(),stop(),run()、suspend()、resume()和sleep()等方法,它們可以對線程的狀態進行控制。
動畫線程的設計與實現
為了每秒中多次更新屏幕,必須創建一個線程來實現動畫的循環,這個循環要跟蹤當前幀並響應周期性的屏幕更新要求。許多Java初學者容易犯的一個錯誤是將動畫循環放在paint()中,這樣占據了主AWT線程,而主線程將負責所有的繪圖和事件處理。因此,應該生成一個獨立的動畫線程來完成圖像的顯示和更新。例如,在一個Applet框架下,當Applet啟動(Start)時,生成一個動畫線程;在Applet停止(stop)時,終止該動畫線程以釋放它所佔用的CPU資源。下列程序代碼(簡稱「C1」代碼)是該動畫線程的具體實現:
public void start() {
if(animatorThread==null) {
animatorThread=new Thread(this);
//開始動畫線程
animatorThread.start();
}
}
public void stop(){
//停止動畫線程
animatorThread=null;
}
上面終止動畫線程的時候,並不是調用該動畫線程的stop()方法,而是設置該動畫線程為null。因為如果直接調用線程的stop()方法會強制線程終止所有的執行工作,有時會帶來不好的結果。設置該動畫線程為null,則在run()方法中,由於不滿足循環條件,線程會自然退出。這樣,也進一步優化了該動畫程序。
重載update()和雙緩沖技術消除閃爍
在Java中,動畫發生閃爍有兩個原因:一個是由於在顯示下一幀畫面的時候,調用了repaint()方法;而repaint()方法被調用時,要清除整個背景,然後才調用paint()方法顯示畫面。這樣,在清除背景和繪制圖像的短暫時間間隔內被用戶看見的就是閃爍。另一個是由於paint()方法要進行復雜的計算,繪制每一幀花費的時間太長,圖像中的各個像素值不能同時得到,使得動畫的生成頻率低於顯示器的刷新頻率,從而造成閃爍。
下面兩種方法可以明顯地消除或減弱閃爍。
重載update()方法
當AWT接收到一個Applet的重繪請求時,它就調用Applet的update()方法。預設情況下,update()方法清除Applet的背景,然後調用paint()方法。重載update()方法就可以將以前在paint()方法中的繪圖代碼包含在update()方法中,從而避免每次重繪時將整個區域清除。既然背景不再自動清除,Java程序員需要自己在update()中完成。
雙緩沖技術
另一種消除幀之間閃爍的方法是使用雙緩沖技術,它在許多動畫Applet中被使用。主要原理是創建一幅後台圖像,將每一幀畫入圖像,然後調用drawImage()方法將整個後台圖像一次畫到屏幕上去。這種方法的優點在於大部分繪制是離屏的。將離屏圖像一次繪至屏幕上,比直接在屏幕上繪制要有效得多。在創建後台圖像前,首先要通過調用createImage()方法生成合適的後台緩沖區,然後獲得在緩沖區做圖的環境(即Graphics類對象)。
下列實常式序代碼(簡稱「C2」代碼)就是這兩種方法的結合使用,雙緩沖技術在重載update()方法中實現。其中,offImage是Image類的對象,offGraphics是Graphics類的對象,這兩個類對象是實現雙緩沖技術的關鍵。相關代碼如下:
public void paint(Graphics g){
update(g);
}
public void update(Graphics g){
Dimension d=getSize();
//如果後台圖像不存在,就創建一個後台圖像
if((offGraphics==null)||(d.width!=offDimension.width)
||(d.height!=offDimension.height)) {
offDimension=d;
offImage=createImage(d.width,d.height);
offGraphics=offImage.getGraphics();
}
//擦除上一幀
offGraphics.setColor(getBackground());
offGraphics.fillRect(0,0,d.width,d.height);
offGraphics.setColor(Color.black);
//將當前的幀輸出到指定的image中
for(int i=0 ; i<10 ; i++){
offGraphics.drawImage(images[i],frameNumber*5%(d.width/2)
,i*d.height/10,this);
}
//輸出指定的後台圖像
g.drawImage(offImage,frameNumber*5%(d.width/2),0,this);
}
雙緩沖技術可以使動畫平滑,但有一個缺點,要分配一個後台圖像的緩沖,如果圖像相當大,這將佔用很大一塊內存。
圖像跟蹤與程序的逐步完善
圖像跟蹤
當動畫線程剛剛啟動的時候,由於沒有全部載入圖像,屏幕上顯示的畫面經常是殘缺不全的。這時可以使用MediaTracker或ImageOberver類對象進行圖像跟蹤,待圖像全部載入後,再調用drawImage()方法將圖像輸出到屏幕上去。DrawImage()方法的第四個參數正是ImageObserver類對象,所以可以用ImageObserver類對象進行圖像跟蹤。在實際應用Applet程序的init()方法中實現圖像跟蹤,相當於在動畫線程的DrawImage()方法調用以前就畫了一次圖像,因為動畫線程的初始化過程,即init()方法是先被調用的。下列代碼(簡稱「C3」代碼)展示了init()方法使用MediaTracker類對象來實現跟蹤圖像的載入,代碼如下:
public void init(){
tracker=new MidiaTracker(this);
for(int i=1;i<=10;i++){
image[i-1]=getImage(getCodeBase(),"image"+i+".gif");
//用MediaTracker類對象的addImage()方法跟蹤圖像的載入
tracker.addImage(images[i-1],0);
}
......
}
程序的進一步完善
在「C2」代碼的重載update()方法中加入下列if語句,從而對MediaTracker類對象的圖像跟蹤方法做出判斷,if語句如下:
if(!tracker.checkAll()){
//如果圖像還沒有裝載完畢,則僅清除背景,同時輸出一個狀態
g.clearRect(0,0,d.width,d.height);
g.drawString("Please wait...",0,d.height/2);
return;
}
在「C1」代碼的stop()方法中加入兩行代碼,用以釋放由雙緩沖技術所佔用的內存資源,這時stop()方法改為:
public void stop(){
//停止動畫線程
animatorThread=null;
//釋放用於雙緩沖的內存資源
offGraphics=null;
offImage=null;
}
程序修改到此,還有一個小問題,就是動畫線程啟動後,第一幅圖像有時仍有殘留痕跡,而不是隨著圖像的更新而完全擦除掉。如果想解決此問題,只要將「C2」代碼中最後的for()循環和g.drawImage()方法改為如下代碼就可以了。
for(int i=0;i<10;i++){
offGraphics.drawImage(images[frameNumber%10],
,frameNumber*5%(d.width),i*d.height/10,this);
}
g.drawImage(offImage,0,0,this);
保持恆定的幀速度
為了使用戶觀看動畫時沒有閃爍感,至少需要達到每秒12幀的速度。更高的幀速度會產生更平滑的動畫。通常,在動畫顯示的每兩幀之間,調用線程的sleep()方法休眠一個固定的
4. java編程中,GUI界面的一般框架有什麼希望大神給寫個程序實例,程序內容包括布局的應用,多個
java GUI一般,通過AWT,SWING 實現
其餘比較流行的是SWT,但是它不是官方庫, 並且旦核不能跨平台
//注意:
Swing, 所以很多不涉及界面組件的一些類比如布局 等Swing也可以使用
但是組件,最好不要混用, 容易出現一些組件疊加,等顯示錯誤 比如JButton TextField等混用
//參考代碼
下面使用Swing組件來實嘩告現
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//本類實現了ActionListener介面.一個ActionListener可以響應JMenuItem和JButton的動作
//本類實現FocusListener介面,一個FocusListener可以響應JTextField,JButton等
//JButton響應多個事件介面
,FocusListener{
privateJTextFieldjtf1;
privateJTextFieldjtf2;
privateJTextFieldjtf3;
privateJButtonjb1;
publicMyGuiFrame(){
//----------窗口屬性亂遲明的設置----------
setTitle("窗口應用程序");//窗口標題
setSize(380,120);//窗口大小
setLocationRelativeTo(null);//窗口居於屏幕中央
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊關閉窗口後退出jvm虛擬機
getContentPane().setLayout(newBorderLayout(5,3));//邊界布局,水平間距5,垂直間距3
//菜單欄組件初始化
initMenu();
//主要面板的初始化
initPanel();
}
privatevoidinitPanel(){
JPaneljp=newJPanel(newFlowLayout(FlowLayout.CENTER));//流式布局
jtf1=newJTextField(8);
jtf1.addFocusListener(this);//添加焦點響應
JLabeljl=newJLabel("+");
jtf2=newJTextField(8);
jtf2.addFocusListener(this);
jb1=newJButton("=");
jb1.addActionListener(this);//添加動作響應
jb1.addFocusListener(this);//添加焦點響應
jtf3=newJTextField(8);
jtf3.setEditable(false);
jp.add(jtf1);
jp.add(jl);
jp.add(jtf2);
jp.add(jb1);
jp.add(jtf3);
getContentPane().add(jp,BorderLayout.CENTER);
}
privatevoidinitMenu(){//菜單欄的初始化和設置
JMenuBarjmb=newJMenuBar();
JMenujm1=newJMenu("系統");
JMenuItemjmi101=newJMenuItem("退出");
jmi101.addActionListener(this);//添加動作響應
JMenujm2=newJMenu("幫助");
JMenuItemjmi201=newJMenuItem("功能說明");
jmi201.addActionListener(this);
jm1.add(jmi101);
jm2.add(jmi201);
jmb.add(jm1);
jmb.add(jm2);
setJMenuBar(jmb);//設置菜單欄
}
//main方法,創建對象窗口,並且設置可見
publicstaticvoidmain(String[]args){
newMyGuiFrame().setVisible(true);
}
//動作響應處理
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根據命令來區分不同的操作
if(cmd.equals("退出")){
System.exit(0);
}
if(cmd.equals("功能說明")){
JOptionPane.showMessageDialog(this,"加法");
}
if(cmd.equals("=")){
Strings1=jtf1.getText().trim();
Strings2=jtf2.getText().trim();
if(s1.equals("")){
s1="0";
}
if(s2.equals("")){
s2="0";
}
doublenum1=Double.parseDouble(s1);//從字元串轉小數
doublenum2=Double.parseDouble(s2);
jtf3.setText((num1+num2)+"");//數字類型轉字元串類型
}
}
//焦點響應處理
publicvoidfocusGained(FocusEvente){//獲得焦點
JComponentcmp=(JComponent)e.getComponent();//根據事件來源組件來區分不同的操作
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.BLUE));//設置邊框
}
if(cmp==jb1){
jb1.setForeground(Color.RED);//設置文字顏色
}
}
publicvoidfocusLost(FocusEvente){//失去焦點
JComponentcmp=(JComponent)e.getComponent();
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
if(cmp==jb1){
jb1.setForeground(Color.BLACK);
}
}
}
運行效果如圖
5. Java經典編程300例的目錄
第1章 Java語言概述 1
實例001 輸出「Hello World」 2
實例002 輸出控制台傳遞的參數 2
實例003 輸出由「*」組成的三角形 3
實例004 輸出符號表情 5
第2章 Eclipse開發工具 6
實例005 下載並運行Eclipse工具 7
實例006 為Eclipse安裝漢化包 8
實例007 使用Eclipse注釋代碼 10
實例008 使用Eclipse格式化代碼 11
實例009 安裝WindowBuilder插件 12
實例010 開發計算器界面 14
第3章 Java語言基礎 15
實例011 輸出錯誤信息與調試信息 16
實例012 從控制台接收輸入字元 16
實例013 重定向輸出流實現程序日誌 17
實例014 自動類型轉換與強制類型轉換 19
實例015 加密可以這樣簡單(位運算) 20
實例016 用三元運算符判斷奇數和偶數 21
實例017 不用乘法運算符實現2×16 22
實例018 實現兩個變數的互換
(不藉助第3個變數) 23
第4章 流程式控制制 25
實例019 判斷某一年是否為閏年 26
實例020 驗證登錄信息的合法性 27
實例021 為新員工分配部門 28
實例022 用switch語句根據消費
金額計算折扣 29
實例023 判斷用戶輸入月份的季節 31
實例024 使用while循環語句與自增
運算符循環遍歷數組 33
實例025 使用for循環輸出楊輝三角形 34
實例026 使用嵌套循環在控制台上
輸出九九乘法表 35
實例027 使用while循環計算1+
1/2!+1/3!…1/20! 36
實例028 使用for循環輸出空心的菱形 38
實例029 終止循環體 39
實例030 循環體的過濾器 41
第5章 數組及其常用操作 43
實例031 獲取一維數組的最小值 44
實例032 將二維數組中的行列互換 45
實例033 利用數組隨機抽取幸運觀眾 47
實例034 用數組設置JTable表格的
列名與列寬 49
實例035 使用按鈕控制項數組實現
計算器界面 51
實例036 通過復選框控制項數組實現
添加多個復選框控制項 52
實例037 使用選擇排序法對數組排序 53
實例038 使用冒泡排序法對數組排序 55
實例039 使用快速排序法對數組排序 57
實例040 使用直接插入法對數組排序 59
實例041 使用sort()方法對數組排序 61
實例042 反轉數組中元素的順序 63
第6章 面向對象入門 65
實例043 自定義圖書類 66
實例044 溫度單位轉換工具 67
實例045 成員變數的默認初始化值 68
實例046 單例模式的應用 69
實例047 漢諾塔問題求解 70
實例048 編寫同名的方法 71
實例049 構造方法的應用 72
實例050 統計圖書的銷售量 73
實例051 兩只完全相同的寵物 74
實例052 重新計算對象的哈希碼 76
實例053 使用字元串輸出對象 77
實例054 Java對象的假克隆 78
實例055 Java對象的淺克隆 80
實例056 Java對象的深克隆 82
實例057 序列化與對象克隆 84
實例058 深克隆效率的比較 87
第7章 面向對象進階 89
實例059 經理與員工的差異 90
實例060 重寫父類中的方法 92
實例061 計算幾何圖形的面積 93
實例062 簡單的汽車銷售商場 95
實例063 使用Comparable介面自定
義排序 96
實例064 策略模式的簡單應用 98
實例065 適配器模式的簡單應用 100
實例066 普通內部類的簡單應用 102
實例067 局部內部類的簡單應用 103
實例068 匿名內部類的簡單應用 104
實例069 靜態內部類的簡單應用 105
實例070 實例化Class類的幾種方式 107
實例071 查看類的聲明 108
實例072 查看類的成員 110
實例073 查看內部類信息 112
實例074 動態設置類的私有域 113
實例075 動態調用類中方法 115
實例076 動態實例化類 116
實例077 創建長度可變的數組 117
實例078 利用反射重寫toString()方法 119
第8章 字元串與包裝類 121
實例079 將數字格式化為貨幣字元串 122
實例080 貨幣金額大寫格式 123
實例081 String類格式化當前日期 125
實例082 字元串大小寫轉換 126
實例083 字元與Unicode碼的轉換 128
實例084 判斷用戶名是否正確 129
實例085 用戶名排序 130
實例086 判斷網頁請求與FTP請求 132
實例087 判斷文件類型 133
實例088 判斷字元串是否為數字 135
實例089 驗證IP地址的有效性 136
實例090 鑒別非法電話號碼 137
實例091 將字元串轉換成整數 139
實例092 整數進制轉換器 140
實例093 獲取字元串中漢字的個數 141
實例094 批量替換某一類字元串 142
實例095 查看數字的取值范圍 144
實例096 ASCII編碼查看器 145
實例097 判斷手機號的合法性 146
實例098 用字元串構建器追加字元 147
實例099 去掉字元串中的所有空格 148
實例100 Double類型的比較 149
第9章 Java集合類框架 151
範例101 用動態數組保存學生姓名 152
實例102 用List集合傳遞學生信息 153
實例103 Map集合二級聯動 155
實例104 不重復隨機數組排序 157
實例105 for循環遍歷ArrayList 159
實例106 Iterator遍歷ArrayList 159
實例107 ListIterator逆序遍歷ArrayList 160
實例108 製作電子詞典 161
實例109 製作手機電話簿 162
第10章 常用數學工具類 164
實例110 角度和弧度的轉換 165
實例111 三角函數的使用 166
實例112 反三角函數的使用 167
實例113 雙曲函數的使用 168
實例114 指數與對數運算 169
實例115 高精度整數運算 170
實例116 高精度浮點運算 171
實例117 七星彩號碼生成器 173
實例118 大樂透號碼生成器 174
第11章 錯誤處理 177
實例119 算數異常 178
實例120 數組下標越界異常 179
實例121 空指針異常 180
實例122 類未發現異常 181
實例123 非法訪問異常 182
實例124 文件未發現異常 183
實例125 資料庫操作異常 184
實例126 方法中拋出異常 185
實例127 方法上拋出異常 186
實例128 自定義異常類 187
實例129 捕獲單個異常 188
實例130 捕獲多個異常 189
第12章 輸入/輸出 191
實例131 顯示指定類型的文件 192
實例132 以樹結構顯示文件路徑 193
實例133 查找替換文本文件內容 194
實例134 設置Windows系統的文件
屬性 195
實例135 文件批量重命名 196
實例136 快速批量移動文件 197
實例137 刪除文件夾中的.tmp文件 198
實例138 將圖片文件保存到資料庫 199
實例139 從資料庫讀取圖片文件 200
實例140 窗體動態載入磁碟文件 201
實例141 刪除文件夾中所有文件 202
實例142 創建磁碟索引文件 208
實例143 控制台記錄器 205
實例144 防止創建多個字元串對象 206
實例145 合並多個文本文件 207
實例146 對大文件實現分割處理 208
實例147 將分割後的文件重新合並 209
實例148 讀取屬性文件單個屬性值 210
實例149 向屬性文件中添加信息 211
實例150 在復制文件時使用進度條 212
實例151 從XML文件中讀取數據 213
實例152 讀取Jar文件屬性 214
實例153 電子通訊錄 215
實例154 批量復制指定擴展名文件 217
實例155 分類保存文件 218
實例156 搜索指定文件夾中的文件 219
實例157 實現文件鎖定功能 220
實例158 簡單的投票軟體 221
實例159 壓縮所有文本文件 222
實例160 將壓縮包解壓到指定文件夾 223
實例161 壓縮所有子文件夾 225
實例162 深層文件夾壓縮包的釋放 226
實例163 解決壓縮包中文亂碼 227
實例164 Apache實現文件解壓縮 228
實例165 把窗體壓縮成ZIP文件 229
實例166 解壓縮Java對象 230
實例167 文件壓縮為RAR文檔 231
實例168 解壓縮RAR壓縮包 233
實例169 為RAR壓縮包添加註釋 234
實例170 獲取壓縮包詳細文件列表 235
實例171 從RAR壓縮包中刪除文件 237
實例172 在壓縮文件中查找字元串 238
實例173 重命名RAR壓縮包中文件 239
實例174 創建自解壓RAR壓縮包 240
第13章 枚舉類型與泛型 242
實例175 查看枚舉類型的定義 243
實例176 枚舉類型的基本特性 244
實例177 增加枚舉元素的信息 245
實例178 選擇合適的枚舉元素 246
實例179 高效的枚舉元素集合 248
實例180 高效的枚舉元素映射 249
實例181 使用枚舉介面遍歷元素 250
實例182 使用泛型實現棧結構 251
實例183 自定義泛型化數組類 253
實例184 泛型方法與數據查詢 254
實例185 使用通配符增強泛型 256
實例186 泛型化的折半查找法 257
第14章 Swing入門 259
實例187 從上次關閉位置啟動窗體 260
實例188 始終在桌面最頂層顯示窗體 261
實例189 設置窗體大小 262
實例190 根據桌面大小調整窗體大小 263
實例191 自定義最大化、最小化和
關閉按鈕 265
實例192 禁止改變窗體的大小 267
實例193 指定窗體標題欄圖標 267
實例194 設置閃爍的標題欄 269
實例195 實現帶背景圖片的窗體 270
實例196 背景為漸變色的主界面 271
實例197 隨機更換窗體背景 273
實例198 橢圓形窗體界面 275
實例199 鑽石形窗體 276
實例200 創建透明窗體 277
實例201 信息提示對話框 278
實例202 設置信息提示對話框的圖標 279
實例203 指定打開對話框的文件類型 280
實例204 為保存對話框設置默認文件名 282
實例205 支持圖片預覽的文件選
擇對話框 283
實例206 顏色選擇對話框 285
實例207 信息輸入對話框 286
實例208 定製信息對話框 287
實例209 攔截事件的玻璃窗格 289
實例210 簡單的每日提示信息 290
實例211 震動效果的提示信息 292
實例212 製作圓形布局管理器 293
實例213 製作階梯布局管理器 295
實例214 密碼域控制項簡單應用 296
實例215 文本域設置背景圖片 297
實例216 文本區設置背景圖片 298
實例217 簡單的字元統計工具 299
實例218 能預覽圖片的復選框 300
實例219 簡單的投票計數軟體 301
實例220 單選按鈕的簡單應用 302
實例221 能顯示圖片的組合框 303
實例222 使用滑塊來選擇日期 305
實例223 模仿記事本的菜單欄 308
實例224 自定義縱向的菜單欄 309
實例225 復選框與單選按鈕菜單項 311
實例226 包含圖片的彈出菜單 312
實例227 工具欄的實現與應用 314
實例228 修改列表項顯示方式 315
實例229 列表項與提示信息 316
實例230 表頭與列的高度設置 317
實例231 調整表格各列的寬度 319
實例232 設置表格的選擇模式 321
實例233 為表頭增添提示信息 323
實例234 單元格的粗粒度排序 325
實例235 實現表格的查找功能 326
實例236 應用網格布局設計計算
器窗體 327
第15章 多線程 329
實例237 查看線程的運行狀態 330
實例238 查看JVM中的線程名 331
實例239 查看和修改線程優先順序 333
實例240 休眠當前線程 335
實例241 終止指定線程 336
實例242 線程的插隊運行 337
實例243 使用方法實現線程同步 339
實例244 使用特殊域變數實現線程同步 341
實例245 簡單的線程通信 342
實例246 新建有返回值的線程 344
實例247 使用線程池優化多線程編程 346
實例248 哲學家的就餐問題 348
第16章 網路通信 350
實例249 獲得內網的所有IP地址 351
實例250 獲取網路資源的大小 352
實例251 解析網頁中的內容 354
實例252 網路資源的單線程下載 355
實例253 網路資源的多線程下載 357
實例254 下載網路資源的斷點續傳 359
實例255 建立伺服器套接字 362
實例256 建立客戶端套接字 363
實例257 設置等待連接的超時時間 364
實例258 獲得Socket信息 365
實例259 接收和發送Socket信息 367
實例260 關閉Socket緩沖 369
實例261 使用Socket通信 371
實例262 防止Socket傳遞漢字亂碼 375
實例263 使用Socket傳遞對象 377
實例264 使用Socket傳輸圖片 379
實例265 使用Socket傳輸音頻 381
實例266 使用Socket傳輸視頻 384
實例267 一個伺服器與一個客戶端
通信 385
實例268 一個伺服器與多個客戶端
通信 387
實例269 客戶端一對多通信 389
實例270 客戶端一對一通信 391
實例271 基於Socket的資料庫編程 393
實例272 使用Proxy創建代理伺服器 396
實例273 使用ProxySelector選擇
代理伺服器 397
實例274 聊天室伺服器端 399
實例275 聊天室客戶端 401
第17章 資料庫操作 405
實例276 JDBC連接MySQL資料庫 406
實例277 連接SQL Server 2005資料庫 407
實例278 JDBC連接Oracle資料庫 408
實例279 獲取SQL Server指定數據
庫中的數據表信息 409
實例280 獲取MySQL指定資料庫
中的數據表名稱 411
實例281 查看數據表結構 412
實例282 動態維護投票資料庫 414
實例283 SQL Server數據備份 416
實例284 SQL Server數據恢復 419
實例285 MySQL數據備份 422
實例286 MySQL數據恢復 424
實例287 動態附加資料庫 425
實例288 生成SQL資料庫腳本 426
實例289 表中欄位的描述信息 429
實例290 將員工信息添加到數據表 430
實例291 添加數據時使用數據驗證 431
實例292 插入用戶登錄日誌信息 432
實例293 生成有規律的編號 433
實例294 生成無規律的編號 435
實例295 插入數據時過濾危險字元 436
實例296 復選框保存到資料庫 437
實例297 把數據復制到另一張表中 438
實例298 批量插入數據 439
實例299 更新指定記錄 440
實例300 在刪除數據時給出提示信息 442