Java進(jìn)階學(xué)習(xí)筆記(十一)

1倍权、控制反轉(zhuǎn):

1.1 布局管理器:

JBbutton btnStep=new JButton("單步");
frame.add(btnStep,BorderLayout.NORTH);
  • frame成為容器中的部件,部件管理容器---布局管理器雕什;

1.2 控制反轉(zhuǎn):(消息機(jī)制)

           btnStep.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("按下啦掏湾!");
                step();
                frame.repaint();
            }
        });

1.3 內(nèi)部類:在一個類的內(nèi)部定義一個另外的類励饵,拿到外面就成為了外部類

private class StepListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e) {
            step();
            frame.repaint();
        }
        }
  • 定義在別的類內(nèi)部剧包、函數(shù)內(nèi)部的類恐锦;
  • 內(nèi)部類能直接訪問外部的全部資源;
    • 包括任何私有的成員疆液;
    • 外部是函數(shù)時一铅,只能訪問那個函數(shù)里final的變量(本地變量);

1.4 匿名類:匿名類一定是一個內(nèi)部類枚粘,叫什么名字不用關(guān)心了

btnStep.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("按下啦馅闽!");
                    step();
                    frame.repaint();
  • 在new對象的時候給出的類的定義形成了匿名類;
  • 匿名類可以繼承某類馍迄,也可以實現(xiàn)某接口福也;
  • Swing的消息機(jī)制廣泛使用匿名類;

1.5 注入反轉(zhuǎn):

  • 由按鈕公布一個收聽者接口和一對注冊/注銷函數(shù)攀圈;
  • 你的代碼實現(xiàn)那個接口暴凑,將收聽者對象注冊在按鈕上;
  • 一旦按鈕被按下赘来,就會反過來調(diào)用你的收聽者對象的某個函數(shù)现喳;

2、MVC設(shè)計模式:

2.1 JTABLE(數(shù)據(jù)和表現(xiàn)是分離的):

  • 用JTable類可以以表格的形式顯示和編輯數(shù)據(jù)犬辰。JTable類的對象并不存儲數(shù)據(jù)嗦篱,它只是數(shù)據(jù)的表現(xiàn),data.
package kcb;

import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;

public class KCBData implements TableModel {
    private String[]title = {
            "周一","周二","周三","周四","周五","周六","周日"
    };
    
    private String[][] data = new String[8][7];
    
    public KCBData() {
        for(int i=0;i<data.length;i++) {
            for(int j=01;j<data[i].length;j++) {
                data[i][j] = " ";
            }
        }
    }
    @Override
    public int getRowCount() {
        return 8;
    }

    @Override
    public int getColumnCount() {
            return 7;
    }

    @Override
    public String getColumnName(int arg0) {
        return title[arg0];
    }

    @Override
    public Class<?> getColumnClass(int arg0) {
        return String.class;
    }

    @Override
    public boolean isCellEditable(int arg0, int arg1) {
        return true;
    }

    @Override
    public Object getValueAt(int arg0, int arg1) {
        return data[arg0][arg1];
    }

    @Override
    public void setValueAt(Object arg0, int arg1, int arg2) {
        data[arg1][arg2] = (String)arg0;

    }

    @Override
    public void addTableModelListener(TableModelListener l) {
        // TODO Auto-generated method stub

    }

    @Override
    public void removeTableModelListener(TableModelListener arg0) {
        // TODO Auto-generated method stub

    }

}
package kcb;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class KCB {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        JTable table = new JTable(new KCBData());
        JScrollPane pane = new JScrollPane(table);//實現(xiàn)滾卷
        frame.add(pane);//容器中增加一個表格
        frame.pack();//frame是個容器
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

}
image.png

2.2 MVC設(shè)計模式:

image.png
  • JTable只管表現(xiàn)不管數(shù)據(jù)幌缝;
  • MVC:
    • 數(shù)據(jù)灸促、表現(xiàn)和控制三者分離,各負(fù)其責(zé)涵卵;
      • M=Model(模型)浴栽;
      • V=View(表現(xiàn));
      • C=Control(控制);
      • 模型:保存和維護(hù)數(shù)據(jù)轿偎,提供接口讓外部修改數(shù)據(jù)典鸡,通知表現(xiàn)需要刷新;
      • 表現(xiàn):從模型獲得數(shù)據(jù)坏晦,根據(jù)數(shù)據(jù)畫出表現(xiàn)萝玷;
      • 控制:從用戶得到輸入,根據(jù)輸入調(diào)整數(shù)據(jù)昆婿;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末间护,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子挖诸,更是在濱河造成了極大的恐慌汁尺,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件多律,死亡現(xiàn)場離奇詭異痴突,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狼荞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門辽装,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人相味,你說我怎么就攤上這事拾积。” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵拓巧,是天一觀的道長斯碌。 經(jīng)常有香客問我,道長肛度,這世上最難降的妖魔是什么傻唾? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮承耿,結(jié)果婚禮上冠骄,老公的妹妹穿的比我還像新娘。我一直安慰自己加袋,他們只是感情好凛辣,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著职烧,像睡著了一般蟀给。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阳堕,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天跋理,我揣著相機(jī)與錄音,去河邊找鬼恬总。 笑死前普,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的壹堰。 我是一名探鬼主播拭卿,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贱纠!你這毒婦竟也來了峻厚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谆焊,失蹤者是張志新(化名)和其女友劉穎惠桃,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辖试,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡辜王,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了罐孝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呐馆。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖莲兢,靈堂內(nèi)的尸體忽然破棺而出汹来,到底是詐尸還是另有隱情续膳,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布收班,位于F島的核電站坟岔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闺阱。R本人自食惡果不足惜炮车,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一舵变、第九天 我趴在偏房一處隱蔽的房頂上張望酣溃。 院中可真熱鬧,春花似錦纪隙、人聲如沸赊豌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碘饼。三九已至,卻和暖如春悲伶,著一層夾襖步出監(jiān)牢的瞬間艾恼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工麸锉, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留钠绍,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓花沉,卻偏偏與公主長得像柳爽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碱屁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,100評論 1 32
  • 面向?qū)ο笾饕槍γ嫦蜻^程磷脯。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,054評論 0 4
  • 整理來自互聯(lián)網(wǎng) 1娩脾,JDK:Java Development Kit赵誓,java的開發(fā)和運行環(huán)境,java的開發(fā)工具...
    Ncompass閱讀 1,538評論 0 6
  • 一:java概述: 1柿赊,JDK:Java Development Kit架曹,java的開發(fā)和運行環(huán)境,java的開發(fā)...
    慕容小偉閱讀 1,788評論 0 10
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,126評論 0 21