① java編程採用圖形界面實現兩個內容的交換,圖形界面如下圖
以下是一個簡單的Java GUI程序,可以實現兩個內容(字元串、圖片等)之間的交換:
Copy code
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwapContent extends JFrame implements ActionListener {
private JLabel label1, label2;
private JButton swapBtn;
public SwapContent() {
// 設置窗口大小和標題
setSize(400, 300);
setTitle("Swap Content Demo");
// 創建標簽和按鈕模喚
label1 = new JLabel("Content A");
label2 = new JLabel("Content B");
swapBtn = new JButton("Swap");
// 設置標簽和按鈕的位置和大小
label1.setBounds(50, 50, 100, 30);
label2.setBounds(200, 50, 100, 30);
swapBtn.setBounds(150, 150, 100, 30);
// 將標簽和按鈕添加到窗口中
add(label1);
add(label2);
add(swapBtn);
// 注冊按鈕的事件監聽器
swapBtn.addActionListener(this);
// 設置窗口的默認關閉方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// 獲取標簽的內容
String temp = label1.getText();
label1.setText(label2.getText());
label2.setText(temp);
}
public static void main(String[] args) {
// 創建窗口對象並顯示
SwapContent sc = new SwapContent();
sc.setVisible(true);
}
}
該程序創建了一個窗口,包括兩個標簽(label1和label2)和一個按鈕(swapBtn)。當用戶點擊按鈕時,程序會交換label1和label2的內容。
在程序的actionPerformed方法中,程序將label1和label2的內容交換。具體實現是,首先使用旦冊凱label1.getText()獲取label1的內容,並將其保存到一個臨時變數temp中;然後,將label1的內容設置為label2的內容,將label2的內容設置為temp的姿裂值。這樣,label1和label2的內容就被互換了。
在main方法中,程序創建了SwapContent對象,並將其顯示出來。程序運行後,用戶可以在窗口中交換label1和label2的內容。
② 用Java語言設計一個界面,
首先:採用什麼技術實現
java語言可以使用awt 和swing等技術實現圖形界面
推薦使用Swing,因為Swing比AWT更專業,更漂亮,組件更豐富,功能更強大。
2. 其次:分析採用什麼布局
邊界布局BorderLayout,配合表格布局GridLayout,既簡單又美觀
3. 最後:分析需求中需要用的組件
學生姓名 學號 顯示信息 需要用到文本框JTextField
單選按鈕 需要用到組件JRadioButton
復選框 需要用到組件JCheckBox
組合框 需要用到組件JComboBox
圖片效果
//導入所需要的包
importjava.awt.event.*;
importjavax.swing.border.*;
importjavax.swing.*;
importjava.awt.*;
{//寫一個類繼承自JFrame窗體
//定義組件
=1L;
privateJPanelcontentPane;
privateJTextFieldtfName,tfNum,allInfo;
privateJRadioButtonrb1,rb2;
privateJCheckBoxcb1,cb2,cb3;
privateJComboBox<String>t1,t2,t3;
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
ClassFrameframe=newClassFrame();//創建一個窗口實例
frame.setVisible(true);//讓該窗口實例可見
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*窗口屬性的設置,內部組件的初始化
*/
publicClassFrame(){
setTitle("選課ing...");//標題
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設置關閉是退出JVM
setSize(450,339);//設置窗體大小
setLocationRelativeTo(null);//窗體居中
contentPane=newJPanel();//內容面板
contentPane.setBorder(newEmptyBorder(5,5,5,5));
contentPane.setLayout(newBorderLayout(0,0));//設置布局
setContentPane(contentPane);
JPanelpanel=newJPanel(newGridLayout(5,1,5,10));//5行1列的表格布局
panel.setBorder(newTitledBorder(null,"",TitledBorder.LEADING,TitledBorder.TOP,null,null));
contentPane.add(panel,BorderLayout.CENTER);//給panel添加邊框
JPanelpanel_1=newJPanel();
panel.add(panel_1);
JLabellabel=newJLabel("姓名");
panel_1.add(label);
tfName=newJTextField();
panel_1.add(tfName);
tfName.setColumns(10);
JLabellabel_2=newJLabel("學號");
panel_1.add(label_2);
tfNum=newJTextField();
tfNum.setColumns(10);
panel_1.add(tfNum);
rb1=newJRadioButton("男");
panel_1.add(rb1);
rb1.setSelected(true);//設置單選按鈕中,默認選擇的按鈕
rb2=newJRadioButton("女");
panel_1.add(rb2);
ButtonGroupbts=newButtonGroup();//單選按鈕需要加入同一個ButonGroup中才能生效
bts.add(rb1);
bts.add(rb2);
JPanelpanel_2=newJPanel();
panel.add(panel_2);
cb1=newJCheckBox("高等數學");
panel_2.add(cb1);
t1=newJComboBox<String>();
t1.setModel(newDefaultComboBoxModel<String>(newString[]{"林老師","趙老師","孫老師"}));
panel_2.add(t1);
JPanelpanel_3=newJPanel();
panel.add(panel_3);
cb2=newJCheckBox("世界經濟");
panel_3.add(cb2);
t2=newJComboBox<String>();
t2.setModel(newDefaultComboBoxModel<String>(newString[]{"張老師","劉老師"}));
panel_3.add(t2);
JPanelpanel_4=newJPanel();
panel.add(panel_4);
cb3=newJCheckBox("音樂賞析");
panel_4.add(cb3);
t3=newJComboBox<String>();
t3.setModel(newDefaultComboBoxModel<String>(newString[]{"王老師","周老師"}));
panel_4.add(t3);
JPanelpanel_5=newJPanel();
panel.add(panel_5);
JButtonjbOk=newJButton("確定");
panel_5.add(jbOk);
JButtonjbRest=newJButton("重填");
panel_5.add(jbRest);
JPanelpanelSouth=newJPanel();
contentPane.add(panelSouth,BorderLayout.SOUTH);
JLabellabe=newJLabel("選課信息");
labe.setHorizontalAlignment(SwingConstants.LEFT);
panelSouth.add(labe);
allInfo=newJTextField();
allInfo.setColumns(30);
panelSouth.add(allInfo);
JPanelpanelNorth=newJPanel();
contentPane.add(panelNorth,BorderLayout.NORTH);
JLabellabelTitle=newJLabel("學生選課界面");
labelTitle.setForeground(Color.DARK_GRAY);
labelTitle.setFont(newFont("宋體",Font.BOLD,20));
panelNorth.add(labelTitle);
//給確定按鈕添加事件處理代碼
jbOk.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
StringBuilderinfo=newStringBuilder();
Stringname=tfName.getText();
Stringnum=tfNum.getText();
Stringsex;
if(rb1.isSelected()){
sex="男";
}else{
sex="女";
}
info.append(name+num+sex);
if(cb1.isSelected()){
Stringc=cb1.getText();
Stringt=t1.getSelectedItem().toString();
info.append(""+c+t);
}
if(cb2.isSelected()){
Stringc=cb2.getText();
Stringt=t2.getSelectedItem().toString();
info.append(""+c+t);
}
if(cb3.isSelected()){
Stringc=cb3.getText();
Stringt=t3.getSelectedItem().toString();
info.append(""+c+t);
}
allInfo.setText(info.toString());//把學生信息和選課信息放到文本框
}
});
//給重填按鈕設置事件處理代碼
jbRest.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
tfName.setText("");
tfNum.setText("");
rb1.setSelected(true);
cb1.setSelected(false);
t1.setSelectedIndex(0);
cb2.setSelected(false);
t2.setSelectedIndex(0);
cb3.setSelected(false);
t3.setSelectedIndex(0);
allInfo.setText("");
}
});
}
}
③ java swing界面設計
GUI圖形界面設計的重點是布局
SWING也是採用AWT的布局方式,進行布局管理的。(實現LayoutManager介面的方法,來進行管理布局,API中已有實現類,我們通常只需要指定實現類,而不需要自己重寫方法)
常用的布局有絕對布局, 邊界布局BorderLayout,流布局FlowLayout,表格布局GridLayout。
JFrame等重量級組件,默認布局是邊界布局,JPanel輕量級組件,默認布局是流布局
絕對布局:布局的特點,需要指定每個組件的大小,和具體位置。
優點:充分的自定義,充分的自由,可以寫出漂亮的 ,細致的界面
缺點:絕對布局在不同的操作系統下,會有一些不同程度的變化,導致界面變形,甚至組件重疊等。在同一操作系統下,窗口放大縮小,界面也會變形
絕對布局的範例
④ JavaSwing圖形界面開發與案例詳解的作品目錄
第1章JavaSwing概述
1.1什麼是JavaSwing
1.1.1Swing的發展史
1.1.2Swing的功能
1.1.3Swing的特性
1.2.1avaSwing的包結構
1.3一個JavaSwing程序實例
1.4本章小結
1.5本章習題
第2章如何使用IDE開發Swing程序
2.1如何利用Eclipse開發Swing程序
2.2如何利用JBuilder開發Swing程序
2.3如何利用NetBeans開發Swing程序
2.4本章小結
2.5本章習題
第3章JavaSwirlg組件基礎
3.1Swing組件類的層次
3.2Window類
3.2.1頂層容器類和包含層次
3.2.2在頂層容器中添加組件
3.2.3在頂層容器中添加菜單欄
3.3JComponent類
3.4本章小結
3.5本章習題
第4章如何使用標簽和按鈕組件
4.1如何使用標簽
4.2如何使用按鈕
4.2.1如何使用普通按鈕
4.2.2如何使用單選按鈕
4.2.3如何使用復選框
4.2.4按鈕組件的實例應用
4.3本章小結
4.4本章習題
第5章如何使用布局管理器組件
5.1布局管理器概述
5.2布局管理器的種類
5.2.1BorderLayout
5.2.2FlowLayout
5.2.3GridLayout
5.2.4GridBagLayout
5.2.5CardLayout
5.2.6BoxLayout
5.2.7SpringLayout
5.2.8GroupLayout
5.3自定義布局管理器的創建
5.4本章小結
5.5本章習題
第6章如何使用面板組件
6.1如何使用JPanel
6.2如何使用JScrollPane
6.3如何使用JSplitPane
6.4如何使用JTabbedPane
6.5如何使用JIntemalFrame
6.6如何使用JLayeredPane
6.7如何使用JRootPane
6.8本章小結
6.9本章習題
第7章Swirlg事件處理機制
7.1Swing事件處理機制概述
7.2Swing中的監聽器
7.2.1事件處理的過程與步驟
7.2.2匿名類方式處理事件
7.2.3適配器類
7.2.4Swing所支持的事件監聽器
7.2.5窗口事件的處理
7.2.6動作事件的處理
7.2.7焦點事件的處理
7.3本章小結
7.4本章習題
第8章如何使用列表框和下拉列表框組件
8.1如何使用列表框JList
8.1.1使用數組方式創建列表框
8.1.2使用Vector方式創建列表框
8.1.3使用ListModel方式創建列表框
8.1.4列表框選取事件的處理
8.1.5列表框雙擊事件的處理
8.2如何使用下拉列表框JComboBox
8.2.1使用數組和Vector創建下拉列表框
8.2.2使用ComboBoxModel創建下拉列表框
8.2.3下拉列表框的事件處理
8.3本章小結
8.4本章習題
第9章如何使用進度條、時間、滑塊和分隔條組件
9.1如何使用進度條組件JProgressBar
9.2如何使用時間組件Timer
9.3如何使用滑塊組件JSlider
9.4如何使用分隔條組件JSeparator
9.5本章小結
9.6本章習題
第10章如何使用選取器組件
10.1如何使用文件選取器JFileChooser
10.1.1如何創建JFileChooser組件
10.1.2如何創建JFileChooser對話框
10.2如何使用顏色選取器JColorChooser
10.3本章小結
10.4本章習題
第11章如何使用文本組件
11.1文本組件概述
11.2如何使用普通文本組件
11.2.1如何使用JTextField
11.2.2如何使用JPasswordField
11.2.3如何使用JFormattedTextField
11.3如何使用文本區組件
11.4如何列印文本組件
11.5本章小結
11.6本章習題
第12章如何使用窗口、對話框和JApplet組件
12.1如何使用窗口組件
12.2如何使用對話框組件
12.3如何使用JApplet組件
12.4本章小結
12.5本章習題
第13章如何使用菜單和工具條組件
13.1如何使用菜單組件
13.1.1菜單組件的類層次
13.1.2如何創建菜單
13.1.3如何處理菜單事件
13.1.4如何響應鍵盤操作
13.1.5如何使用彈出式菜單
13.1.6如何使用菜單項的啟用和禁用功能
13.1.7如何創建復選框菜單項
13.1.8如何創建單選按鈕菜單項
13.1.9如何定義個性化菜單
13.1.10菜單組件的常用API
13.2如何使用工具條組件
13.2.1如何創建工具條
13.2.2如何定義個性化工具條
13.2.3工具條組件的常用API
13.3本章小結
13.4本章習題
第14章如何使用表格組件
14.1如何創建一個表格
14.2如何把表格加入容器
14.3如何設置表格列寬
14.4如何創建表格模型
14.5如何監聽數據變化
14.6如何使用選擇器
14.7如何使用編輯器和渲染器
14.8如何使用自定義渲染器
14.9如何為單元格指定文字說明
14.10如何為表頭指定文字說明
14.11如何使用排序和過濾
14.12如何使用組合框作為編輯器
14.13如何使用其他編輯器
14.14如何使用編輯器驗證文本
14.15如何列印表格
14.16本章小結
14.17本章習題
第15章如何使用樹組件
15.1如何創建樹
15.2如何創建數據模型
15.3如何處理節點事件
15.3.1如何處理TreeModelEvent事件
15.3.2如何處理TreeSelectionEvent事件
15.4如何定義個性化樹
15.5樹組件的常用API
15.6本章小結
15.7本章習題
第16章如何使用Swing觀感器
16.1如何設置程序的觀感
16.2如何自定義觀感器
16.3本章小結
16.4本章習題
第17章Swing與並發
17.1多線程問題
17.2初始線程
17.3事件分派線程
17.4工作線程
17.4.1簡單的背景任務
17.4.2擁有臨時結果的任務
17.4.3取消背景任務
17.4.4綁定屬性和狀態方法
17.5本章小結
17.6本章習題
第18章Swing模型架構
18.1傳統的MVC設計模式
18.2可分離的模型架構
18.3本章小結
18.4本章習題
第19章Swing的其他特性
19.1如何在Swing組件中使用HTML
19.2如何使用邊框
19.2.1如何使用Swing中的邊框
19.2.2如何創建自定義邊框
19.2.3邊框組件的常用API
19.3如何使用圖標
19.4如何使用動作
19.5如何支持輔助技術
19.6如何使用焦點子系統
19.7如何使用鍵綁定
19.8如何在對話框中使用Modality
19.9如何創建SplashScreen
19.10如何使用SystemTray
19.11如何使用Swing拖曳功能和數據傳輸
19.12本章小結
19.13本章習題
第20章Swirlg實現通訊錄系統
20.1通訊錄系統的軟體框架
20.2通訊錄系統的登錄系統
20.3通訊錄系統的主菜單系統
20.3.1資料庫模塊的設計
20.3.2信息界面模塊的設計
20.3.3功能模塊的設計
20.3.4其他模塊的設計
20.3.5TabbedPane容器框架的設計
20.3.6主菜單的設計
20.4本章小結
……
⑤ 關於Java Swing 圖形界面的
0. JavaSwing 簡介
Java Swing 圖形界面開發簡介
1. JavaSwing 布局管理器
JavaSwing_1.1: FlowLayout(流式布局)
JavaSwing_1.2: GridLayout(網格布局)
JavaSwing_1.3: GridBagLayout(網格袋布局)
JavaSwing_1.4: BoxLayout(箱式布局)
JavaSwing_1.5: GroupLayout(分組布局)
JavaSwing_1.6: CardLayout(卡片布局)
JavaSwing_1.7: BorderLayout(邊界布局)
JavaSwing_1.8: SpringLayout(彈性布局)
JavaSwing_1.9: null(絕對布局)
2. JavaSwing 基本組件
JavaSwing_2.1: JLabel(標簽)
JavaSwing_2.2: JButton(按鈕)
JavaSwing_2.3: JRadioButton(單選按鈕)
JavaSwing_2.4: JCheckBox(復選框)
JavaSwing_2.5: JToggleButton(開關按鈕)
JavaSwing_2.6: JTextField(文本框)
JavaSwing_2.7: JPasswordField(密碼框)
JavaSwing_2.8: JTextArea(文本區域)
JavaSwing_2.9: JComboBox(下拉列表框)
JavaSwing_2.10: JList(列表框)
JavaSwing_2.11: JProgressBar(進度條)
JavaSwing_2.12: JSlider(滑塊)
3. JavaSwing 面板組件
JavaSwing_3.1: JPanel(面板)
JavaSwing_3.2: JScrollPane(滾動面板)
JavaSwing_3.3: JSplitPane(分隔面板)
JavaSwing_3.4: JTabbedPane(選項卡面板)
JavaSwing_3.5: JLayeredPane(層級面板)
4. JavaSwing 其他組件
JavaSwing_4.1: JFrame(窗口)
JavaSwing_4.2: JDialog、JOptionPane(對話框)
JavaSwing_4.3: JFileChooser(文件選擇器)
JavaSwing_4.4: JColorChooser(顏色選擇器)
JavaSwing_4.5: JMenuBar(菜單欄)
JavaSwing_4.6: JToolBar(工具欄)
JavaSwing_4.7: JPopupMenu(彈出菜單)
JavaSwing_4.8: JTable(表格)
JavaSwing_4.9: JTree(樹)
JavaSwing_4.10: JInternalFrame(內部窗口)
5. JavaSwing 相關特性
JavaSwing_5.1: 組件的位置和尺寸
JavaSwing_5.2: 組件邊框(Border)
JavaSwing_5.3: 事件處理
JavaSwing_5.4: 多線程並發與線程安全
JavaSwing_5.5: 拖拽功能
JavaSwing_5.6: 系統托盤(System Tray)
JavaSwing_5.7: 閃屏(Splash Screen)
擴展:Java AWT/Swing 其他相關
Java繪圖: 使用Graphics類繪制線段、矩形、橢圓/圓弧/扇形、圖片、文本
Java圖片操作 — 圖片的讀取、繪制、縮放、裁剪、保存
Java代碼截屏:使用 Java 代碼截取電腦屏幕並保存
Java模擬滑鼠鍵盤輸入事件 — Robot 類
Java操作桌面應用 — Desktop 類
Java操作系統剪貼板(Clipboard)實現復制和粘貼
⑥ java編寫一個圖形界面程序
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
importjavax.swing.*;
importjavax.swing.border.Border;
classMainFrameextendsJFrame{
=1L;
privateMap<String,Integer>sizes=newHashMap<String,Integer>();
privateMap<String,Integer>styles=newHashMap<String,Integer>();
privateMap<String,Integer>toppings=newHashMap<String,Integer>();
publicMainFrame(){
sizes.put("ExtraLarge",10);
sizes.put("Large",8);
sizes.put("Medium",5);
sizes.put("Small",3);
styles.put("DeepDish",20);
styles.put("Regular",10);
styles.put("ThinCrust",5);
styles.put("Chicago",3);
toppings.put("Cheese",8);
toppings.put("Tomato",7);
toppings.put("Peppers",6);
toppings.put("Peperoni",5);
this.setTitle("布局及事件處理");
this.setSize(450,350);
this.setLayout(newBorderLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabellblTitle=newJLabel();
lblTitle.setText("PizzeriaJuno");
lblTitle.setFont(newFont("宋體",Font.BOLD,36));
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
this.add("North",lblTitle);
JPanelbodyPanel=newJPanel();
bodyPanel.setLayout(newGridLayout(2,1));
this.add("Center",bodyPanel);
JPanellistPanel=newJPanel();
listPanel.setLayout(newGridLayout(1,3));
listPanel.setSize(200,200);
bodyPanel.add(listPanel);
BorderlineBorder=BorderFactory.createLineBorder(Color.BLACK);
JPanelsizePanel=newJPanel();
sizePanel.setLayout(newBorderLayout());
listPanel.add(sizePanel);
JLabelsizeTitle=newJLabel();
sizeTitle.setText("Sizes");
sizePanel.add("North",sizeTitle);
JListsizeList=newJList(sizes.keySet().toArray());
sizeList.setSize(100,100);
sizeList.setBorder(lineBorder);
sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sizePanel.add(sizeList);
JPanelstylePanel=newJPanel();
stylePanel.setLayout(newBorderLayout());
listPanel.add(stylePanel);
JLabelstyleTitle=newJLabel();
styleTitle.setText("Styles");
stylePanel.add("North",styleTitle);
JListstyleList=newJList(styles.keySet().toArray());
styleList.setSize(100,100);
styleList.setBorder(lineBorder);
styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
stylePanel.add(styleList);
JPaneltoppingPanel=newJPanel();
toppingPanel.setLayout(newBorderLayout());
listPanel.add(toppingPanel);
JLabeltoppingTitle=newJLabel();
toppingTitle.setText("Toppings");
toppingPanel.add("North",toppingTitle);
JListtoppingList=newJList(toppings.keySet().toArray());
toppingList.setSize(100,100);
toppingList.setBorder(lineBorder);
toppingPanel.add(toppingList);
JTextAreatxtResult=newJTextArea();
txtResult.setEditable(false);
bodyPanel.add(txtResult);
JPanelbottomPanel=newJPanel();
bottomPanel.setLayout(newGridLayout(1,3));
this.add("South",bottomPanel);
JLabellabel1=newJLabel("Clicktocompleteorder");
bottomPanel.add(label1);
JButtonbtnRingUp=newJButton("Ringup");
btnRingUp.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(sizeList.getSelectedValue()==null){
JOptionPane.showMessageDialog(MainFrame.this,"Pleaseselectsize.");
return;
}
if(styleList.getSelectedValue()==null){
JOptionPane.showMessageDialog(MainFrame.this,"Pleaseselectstyle.");
return;
}
if(toppingList.getSelectedValue()==null){
JOptionPane.showMessageDialog(MainFrame.this,"Pleaseselecttopping.");
return;
}
floattotal=0;
Stringsize=sizeList.getSelectedValue().toString();
total+=sizes.get(size);
Stringstyle=styleList.getSelectedValue().toString();
total+=styles.get(style);
Stringresult=size+"Pizza,"+style+"Style";
Object[]toppings=toppingList.getSelectedValues();
for(Objecttopping:toppings){
result+="
+"+topping.toString();
total+=MainFrame.this.toppings.get(topping.toString());
}
result+="
Total:"+total;
txtResult.setText(result);
}
});
bottomPanel.add(btnRingUp);
JButtonbtnQuit=newJButton("Quit");
btnQuit.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
MainFrame.this.dispose();
}
});
bottomPanel.add(btnQuit);
}
}
publicclassApp{
publicstaticvoidmain(String[]args){
MainFramemainFrame=newMainFrame();
mainFrame.setVisible(true);
}
}
⑦ JavaSwing圖形界面開發與案例詳解的內容簡介
全書共20章,其中第1~2章主要介紹有關Swing的基礎知識,包括Swing的基本概述、如何使用IDE開發Swing程序;第3~15章結合眾多實例和問題介紹最常用、最有用的組件及其應用方法,包括標簽和按鈕組件、布局管理器組件、面板組件、列表框組件、下拉列表框組件、進度條組件、時間組件、滑塊組件、分隔條組件、選取器組件、文本組件、窗口組件、對話框組件、JApplet組件、菜單組件、工具條組件、表格組件、樹組件以及組件的事件處理機制等;第16~19章主要講述有關Swing圖形開發的其他知識,包括觀感器、Swing線程與並發、模型與架構等。第20章通過一個綜合實例使讀者能夠在實際開發中理解和鞏固所學知識,從而提高綜合應用能力。
《JavaSwing圖形界面開發與案例詳解》幾乎涵蓋了目前JavaSwing圖形開發必備的所有常用知識,擁有豐富的實例,且這些實例均來自於工程實踐,《JavaSwing圖形界面開發與案例詳解》適合Java程序語言的初學者閱讀,也可供具有一定編程經驗的初級編程人員參考。