1. 程式人生 > >201771010141 周強《面向物件程式設計(java)》第十三週學習總結

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 面向物件程式設計Java12作業

實驗十二  圖形程式設計 實驗時間 2018-11-14 1、實驗目的與要求 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解J

201771010128王玉蘭《面向物件程式設計Java十四周學習總結

第一部分:理論知識總結: (1)Swing  設計模式(Design pattern)是設計者一種流行的 思考設計問題的方法,是一套被反覆使用,多數人 知曉的,經過分類編目的,程式碼設計經驗的總結。 使用設計模式是為了可重用程式碼、讓程式碼更容易被 他人理解、保證程式碼可靠性。 每一個模式描

201771010120 蘇浪浪 面向物件程式設計Java10

  1、實驗目的與要求 (1) 理解泛型概念; (2) 掌握泛型類的定義與使用; (3) 掌握泛型方法的宣告與使用; (4) 掌握泛型介面的定義與實現; (5)瞭解泛型程式設計,理解其用途。 2、實驗內容和步驟 實驗1: 匯入第8章示例程式,測試程式並進行程式碼註釋。 測試程式1:

2018面向物件程式設計Java11學習指導及要求

2018面向物件程式設計(Java)第11周學習指導及要求 (2018.11.8-2018.11.11)   學習目標 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkLis

2018面向物件程式設計Java12學習指導及要求

2018面向物件程式設計(Java)第12周學習指導及要求 (2018.11.15-2018.11.18)   學習目標 (1) 掌握Java GUI中框架建立及屬性設定中常用類的API; (2) 掌握Java GUI中2D圖形繪製常用類的API; (3) 瞭解Java GUI中2D圖形

蘇浪浪 201771010120 面向物件程式設計Java13

/實驗十三  圖形介面事件處理技術 1、實驗目的與要求 (1) 掌握事件處理的基本原理,理解其用途; (2) 掌握AWT事件模型的工作機制; (3) 掌握事件處理的基本程式設計模型; (4) 瞭解GUI介面元件觀感設定方法; (5) 掌握WindowAdapter類、AbstractAc

2018面向物件程式設計Java14學習指導及要求

2018面向物件程式設計(Java)第14周學習指導及要求(2018.11.29-2018.12.2)   學習目標 (1) 掌握GUI佈局管理器用法; (2) 掌握各類Java Swing元件用途及常用API; 學習資源 1.教材第12章 2.第12章教學課件 3. corejav

201771010102 常惠琢 2018面向物件程式設計Java14學習總結

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面向物件程式設計Java16學習指導及要求

2018面向物件程式設計(Java)第16周學習指導及要求(2018.12.13-2018.12.16)   學習目標 (1) 掌握執行緒概念; (2) 掌握執行緒建立的兩種技術; (3) 理解和掌握執行緒的優先順序屬性及排程方法; (4) 掌握Java GUI 程式設計技術。 學習資

201771010102 常惠琢 2018面向物件程式設計JAVA18學習總結

實驗十八  總複習 實驗時間 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面向物件程式設計Java10學習總結

實驗十  泛型程式設計技術 實驗時間 2018-11-1 1、實驗目的與要求 (1) 理解泛型概念; (2) 掌握泛型類的定義與使用; (3) 掌握泛型方法的宣告與使用; (4) 掌握泛型介面的定義與實現; (5)瞭解泛型程式

201771010102 常惠琢 《2018面向物件程式設計Java11學習總結

實驗十一   集合 實驗時間 2018-11-8 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (4) 瞭

201771010120 蘇浪浪 《面向物件程式設計java11學習總結

實驗十一   集合 1、實驗目的與要求 (1) 掌握Vetor、Stack、Hashtable三個類的用途及常用API; (2) 瞭解java集合框架體系組成; (3) 掌握ArrayList、LinkList兩個類的用途及常用API。 (

201771010102 常惠琢 《2018面向物件程式設計Java12學習總結

第一部分:理論部分:  1.集合框架中的介面: 2.集合框架中的實現類: 3.AWT元件(java.awt.*):   4.Swing 元件層次關係: 5.集合類的特點:    集合類特點一: 只容納物件。      &

201772020113 李清華《面向物件程式設計java17學習總結

  1、實驗目的與要求 (1) 掌握執行緒同步的概念及實現技術; (2) 執行緒綜合程式設計練習 2、實驗內容和步驟 實驗1:測試程式並進行程式碼註釋。 測試程式1: l  在Elipse環境下除錯教材651頁程式14-7,結合程式執行結果理解程式; l  掌握利

201772020113 李清華《面向物件程式設計java18學習總結

1、實驗目的與要求 (1) 綜合掌握java基本程式結構; (2) 綜合掌握java面向物件程式設計特點; (3) 綜合掌握java GUI 程式設計結構; (4) 綜合掌握java多執行緒程式設計模型; (5) 綜合程式設計練習。 2、實驗內容和步驟 任務1:填寫課程課後調查問卷,網址:htt

楊玲 201771010133《面向物件程式設計java學習總結

《面向物件程式設計(java)》第十週學習總結 第一部分:理論知識學習部分    第八章    泛型程式設計 一、泛型程式設計的定義 1、JDK 5.0 中增加的泛型型別,是Java 語言中型別安全的一次重要改進。 2、 泛型:也稱引數化型別(paramete