201771010141 周強《面向物件程式設計(java)》第十三週學習總結
實驗目的與要求
(1) 掌握事件處理的基本原理,理解其用途;
(2) 掌握AWT事件模型的工作機制;
(3) 掌握事件處理的基本程式設計模型;
(4) 瞭解GUI介面元件觀感設定方法;
(5) 掌握WindowAdapter類、AbstractAction類的用法;
(6) 掌握GUI程式中滑鼠事件處理技術。
實驗內容和步驟
實驗1: 匯入第11章示例程式,測試程式並進行程式碼註釋。
測試程式1:
l 在elipse IDE中除錯執行教材443頁-444頁程式11-1,結合程式執行結果理解程式;
l 在事件處理相關程式碼處添加註釋;
l 用lambda表示式簡化程式;
l 掌握JButton元件的基本API;
l 掌握Java中事件處理的基本程式設計模型。
package button;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* 帶按鈕面板的框架
*/
public class ButtonFrame extends JFrame
{
private JPanel buttonPanel;//定義JPanel屬性
private static final int DEFAULT_WIDTH = 600;
private static final int DEFAULT_HEIGHT = 400;
public ButtonFrame()
{
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);//通過setSize更改了寬度和高度的屬性值
//建立按鈕 生成了三個按鈕物件,顯示在視窗物件上的title文字
JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");
buttonPanel = new JPanel();//使new JPanel指向物件buttonPanel
//向面板新增按鈕 通過add方法新增三個按鈕元件
buttonPanel.add(yellowButton);
buttonPanel.add(blueButton);
buttonPanel.add(redButton);
// 將面板新增到幀
add(buttonPanel);
// 建立按鈕動作
ColorAction yellowAction = new ColorAction(Color.YELLOW);
ColorAction blueAction = new ColorAction(Color.BLUE);
ColorAction redAction = new ColorAction(Color.RED);
//用按鈕關聯動作 監聽器物件與元件之間的註冊機制
yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}
/**
* 設定面板背景顏色的動作偵聽器。
*/
private class ColorAction implements ActionListener
//ColorAction類後面實現了一個監聽器介面類ActionListener
{
private Color backgroundColor;
public ColorAction(Color c)
{
backgroundColor = c;
}
public void actionPerformed(ActionEvent event)
{
buttonPanel.setBackground(backgroundColor);
}
}
}
package button;
import java.awt.*;
import javax.swing.*;
/**
* @version 1.34 2015-06-12
* @author Cay Horstmann
*/
public class ButtonTest
{
public static void main(String[] args)//String類代表字串。Java 程式中的所有字串字面值(如 "abc" )都作為此類的例項實現。
{
EventQueue.invokeLater(() -> {
JFrame frame = new ButtonFrame();//生成ButtonFrame物件
frame.setTitle("ButtonTest");//設定組建的自定義標題測試按鈕
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設定預設的關閉操作,引數在關閉動作時退出
frame.setVisible(true);//一個圖形介面預設都是不可見的,setVisible把圖形介面設定為可見
});
}
}
ButtonTest
package button;
import java.awt.*;
import java.awt.event.*;
import java.nio.charset.CodingErrorAction;
import java.util.Collection;
import javax.swing.*;
/**
* 帶按鈕面板的框架
*/
@SuppressWarnings("serial")
public class ButtonFrame extends JFrame {
private JPanel buttonPanel;// 定義JPanel屬性
private static final int DEFAULT_WIDTH = 600;
private static final int DEFAULT_HEIGHT = 400;
public ButtonFrame() {
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);// 通過setSize更改了寬度和高度的屬性值
buttonPanel = new JPanel();// 使new JPanel指向物件buttonPanel
// 將面板新增到幀
add(buttonPanel);
makeButton1("Yellow", Color.yellow);
makeButton1("White", Color.white);
makeButton1("Black", Color.black);
makeButton1("Green", Color.green);
makeButton1("Pink", Color.pink);
makeButton1("Blue", Color.blue);
makeButton1("Gray", Color.gray);
makeButton1("Red", Color.red);
}
public void makeButton1(String name, Color backgroundColor) {
JButton button = new JButton(name);
buttonPanel.add(button);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
buttonPanel.setBackground(backgroundColor);
}
});
}
}
測試程式2:
l 在elipse IDE中除錯執行教材449頁程式11-2,結合程式執行結果理解程式;
l 在元件觀感設定程式碼處添加註釋;
l 瞭解GUI程式中觀感的設定方法
package
plaf;
import
javax.swing.JButton;
import
javax.swing.JFrame;
import
javax.swing.JPanel;
import
javax.swing.SwingUtilities;
import
javax.swing.UIManager;
/**帶有按鈕面板的框架,用於改變外觀
* A frame with a button panel for changing look-and-feel
*/
public
class
PlafFrame
extends
JFrame
{
private
JPanel buttonPanel;
public
PlafFrame()
{
buttonPanel =
new
JPanel();
//獲得一個用於描述已安裝的觀感的物件陣列
UIManager.LookAndFeelInfo[] infos = UIManager.getInstalledLookAndFeels();
for
(UIManager.LookAndFeelInfo info : infos)
//返回觀感的顯示名稱
makeButton(info.getName(), info.getClassName());
//返回觀感實現類的名稱
add(buttonPanel);
pack();
//調整此視窗的大小,以適合其子元件的首選大小和佈局。
相關推薦
201771010141 周強 面向物件程式設計(Java)第12周作業
實驗十二 圖形程式設計
實驗時間 2018-11-14
1、實驗目的與要求
(1) 掌握Java GUI中框架建立及屬性設定中常用類的API;
(2) 掌握Java GUI中2D圖形繪製常用類的API;
(3) 瞭解J
201771010128王玉蘭《面向物件程式設計(Java)第十四周學習總結》
第一部分:理論知識總結:
(1)Swing
設計模式(Design pattern)是設計者一種流行的 思考設計問題的方法,是一套被反覆使用,多數人 知曉的,經過分類編目的,程式碼設計經驗的總結。
使用設計模式是為了可重用程式碼、讓程式碼更容易被 他人理解、保證程式碼可靠性。
每一個模式描
201771010120 蘇浪浪 面向物件程式設計(Java)第10周
1、實驗目的與要求
(1) 理解泛型概念;
(2) 掌握泛型類的定義與使用;
(3) 掌握泛型方法的宣告與使用;
(4) 掌握泛型介面的定義與實現;
(5)瞭解泛型程式設計,理解其用途。
2、實驗內容和步驟
實驗1: 匯入第8章示例程式,測試程式並進行程式碼註釋。
測試程式1:
2018面向物件程式設計(Java)第11周學習指導及要求
2018面向物件程式設計(Java)第11周學習指導及要求
(2018.11.8-2018.11.11)
學習目標
(1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API;
(2) 瞭解java集合框架體系組成;
(3) 掌握ArrayList、LinkLis
2018面向物件程式設計(Java)第12周學習指導及要求
2018面向物件程式設計(Java)第12周學習指導及要求
(2018.11.15-2018.11.18)
學習目標
(1) 掌握Java GUI中框架建立及屬性設定中常用類的API;
(2) 掌握Java GUI中2D圖形繪製常用類的API;
(3) 瞭解Java GUI中2D圖形
蘇浪浪 201771010120 面向物件程式設計(Java)第13周
/實驗十三 圖形介面事件處理技術
1、實驗目的與要求
(1) 掌握事件處理的基本原理,理解其用途;
(2) 掌握AWT事件模型的工作機制;
(3) 掌握事件處理的基本程式設計模型;
(4) 瞭解GUI介面元件觀感設定方法;
(5) 掌握WindowAdapter類、AbstractAc
2018面向物件程式設計(Java)第14周學習指導及要求
2018面向物件程式設計(Java)第14周學習指導及要求(2018.11.29-2018.12.2)
學習目標
(1) 掌握GUI佈局管理器用法;
(2) 掌握各類Java Swing元件用途及常用API;
學習資源
1.教材第12章
2.第12章教學課件
3. corejav
201771010102 常惠琢 2018面向物件程式設計(Java)第14周學習總結
1 package gridbag;
2
3 import java.awt.*;
4
5 /**
6 * This class simplifies the use of the GridBagConstraints class.
7 * @version 1.01
2018面向物件程式設計(Java)第16周學習指導及要求
2018面向物件程式設計(Java)第16周學習指導及要求(2018.12.13-2018.12.16)
學習目標
(1) 掌握執行緒概念;
(2) 掌握執行緒建立的兩種技術;
(3) 理解和掌握執行緒的優先順序屬性及排程方法;
(4) 掌握Java GUI 程式設計技術。
學習資
201771010102 常惠琢 2018面向物件程式設計(JAVA)第18周學習總結
實驗十八 總複習
實驗時間 2018-12-30
1、實驗目的與要求
(1) 綜合掌握java基本程式結構;
(2) 綜合掌握java面向物件程式設計特點;
(3) 綜合掌握java GUI 程式設計結構;
周強 201771010141 《面向物件程式設計(Java)》第十一週學習總結
實驗十一 集合
實驗時間 2018-11-8
1、實驗目的與要求
(1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API;
Vector類實現了長度可變的陣列。
Stack類是Vector的子類。
Hashtable通過
201771010141 周強《面向物件程式設計(java)》第十三週學習總結
實驗目的與要求
(1) 掌握事件處理的基本原理,理解其用途;
(2) 掌握AWT事件模型的工作機制;
(3) 掌握事件處理的基本程式設計模型;
(4) 瞭解GUI介面元件觀感設定方法;
(5) 掌握WindowAdap
周強 201771010141面向物件程式設計(java)》第十七週學習總結
執行緒同步
多執行緒併發執行不確定性問題解決方案:引入線 程同步機制,使得另一執行緒要使用該方法,就只 能等待。
⚫ 在Java中解決多執行緒同步問題的方法有兩種:
1.- Java SE 5.0中引入ReentrantLock類(P648頁)。
2.- 在共享記憶體的類方法前加synchronize
201771010102 常惠琢《2018面向物件程式設計(Java)》第10周學習總結
實驗十 泛型程式設計技術
實驗時間 2018-11-1
1、實驗目的與要求
(1) 理解泛型概念;
(2) 掌握泛型類的定義與使用;
(3) 掌握泛型方法的宣告與使用;
(4) 掌握泛型介面的定義與實現;
(5)瞭解泛型程式
201771010102 常惠琢 《2018面向物件程式設計(Java)》第11周學習總結
實驗十一 集合
實驗時間 2018-11-8
1、實驗目的與要求
(1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API;
(2) 瞭解java集合框架體系組成;
(3) 掌握ArrayList、LinkList兩個類的用途及常用API。
(4) 瞭
201771010120 蘇浪浪 《面向物件程式設計(java)》第11周學習總結
實驗十一 集合
1、實驗目的與要求
(1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API;
(2) 瞭解java集合框架體系組成;
(3) 掌握ArrayList、LinkList兩個類的用途及常用API。
(
201771010102 常惠琢 《2018面向物件程式設計(Java)》第12周學習總結
第一部分:理論部分:
1.集合框架中的介面:
2.集合框架中的實現類:
3.AWT元件(java.awt.*):
4.Swing 元件層次關係:
5.集合類的特點: 集合類特點一: 只容納物件。
&
201772020113 李清華《面向物件程式設計(java)》第17周學習總結
1、實驗目的與要求
(1) 掌握執行緒同步的概念及實現技術;
(2) 執行緒綜合程式設計練習
2、實驗內容和步驟
實驗1:測試程式並進行程式碼註釋。
測試程式1:
l 在Elipse環境下除錯教材651頁程式14-7,結合程式執行結果理解程式;
l 掌握利
201772020113 李清華《面向物件程式設計(java)》第18周學習總結
1、實驗目的與要求
(1) 綜合掌握java基本程式結構;
(2) 綜合掌握java面向物件程式設計特點;
(3) 綜合掌握java GUI 程式設計結構;
(4) 綜合掌握java多執行緒程式設計模型;
(5) 綜合程式設計練習。
2、實驗內容和步驟
任務1:填寫課程課後調查問卷,網址:htt
楊玲 201771010133《面向物件程式設計(java)》第十週學習總結
《面向物件程式設計(java)》第十週學習總結
第一部分:理論知識學習部分
第八章 泛型程式設計
一、泛型程式設計的定義
1、JDK 5.0 中增加的泛型型別,是Java 語言中型別安全的一次重要改進。
2、 泛型:也稱引數化型別(paramete