freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java語(yǔ)言程序設(shè)計(jì)基礎(chǔ)教程(中)ppt-文庫(kù)吧資料

2024-10-22 16:19本頁(yè)面
  

【正文】 有一個(gè)方法: ? textValueChanged(TextEvent e)。在 TextArea中可以顯示水平或垂直的滾動(dòng)條。 //初始文本為Hello!, 顯示區(qū)域?yàn)?30列 ? TextArea可以顯示多行多列的文本。 //顯示區(qū)域?yàn)?20列 ? tf3=new TextField(Hello!)。 ? 單行文本輸入?yún)^(qū)構(gòu)造方法如下: ? TextField tf1,tf2,tf3,tf4: ? tf1=new TextField()。 ? 這個(gè)組件只能顯示一行,當(dāng)回車(chē)鍵被按下時(shí),會(huì)發(fā)生 ActionEvent事件,可以通過(guò)ActionListener中的 actionPerformed()方法對(duì)事件進(jìn)行相應(yīng)處理。 ? } ? } ? 程序編譯運(yùn)行后的結(jié)果如下所示: ? TextField類(lèi)是專(zhuān)門(mén)用來(lái)創(chuàng)建文本框的,即 TextField類(lèi)創(chuàng)建的一個(gè)對(duì)象就是一個(gè)文本框。 ? } ? } catch (NumberFormatException event) { ? 提示條 .setText(請(qǐng)輸入數(shù)字字符 )。 ? } else if (guess number) { ? 提示條 .setText(猜小了! )。 ? } else if (guess number) { ? 提示條 .setText(猜大了! )。 ? try { ? guess = (輸入框 .getText())。 ? 提示條 .setText(輸入你的猜測(cè): )。 ? validate()。 ? setBounds(100, 100, 150, 150)。 ? (this)。 ? buttonEnter = new Button(確定 )。 ? add(提示條 )。 ? 提示條 .setBackground()。 ? add(buttonGetNumber)。 ? setLayout(new FlowLayout())。 ? Button buttonGetNumber, buttonEnter。 ? Label 提示條 。 ? import .*。 【 例 613】 一個(gè)包含兩個(gè)按鈕組件的猜數(shù)字小游戲程序。ActionEvent的對(duì)象調(diào)用 getActionCommand()方法可以得到按鈕的標(biāo)識(shí)名,缺省按鈕名為label。 //使用這個(gè)構(gòu)造方法創(chuàng)建按鈕,按鈕的名稱(chēng)是字符串 s ? 例如: ? Button b = new Button(Quit)。 ? 按鈕是最常用的一個(gè)組件, Button類(lèi)是專(zhuān)門(mén)用來(lái)建立按鈕的,其構(gòu)造方法有 2個(gè): ? Button()。但是,由于 Java的單一繼承機(jī)制,當(dāng)需要多種監(jiān)聽(tīng)器或此類(lèi)已有父類(lèi)時(shí),就無(wú)法采用事件適配器了??梢酝ㄟ^(guò)繼承事件所對(duì)應(yīng)的Adapter類(lèi),重寫(xiě)需要方法,無(wú)關(guān)方法不用實(shí)現(xiàn)。但卻必須所有方法都要寫(xiě)上。在AWT中就經(jīng)常用到聲明和實(shí)現(xiàn)多個(gè)接口。 ? ◇ 注銷(xiāo)監(jiān)聽(tīng)器: ? public void remove (listener)。 ? //窗口激活時(shí)調(diào)用 ? public void windowDeactivated(WindowEvent e)。 ? //窗口非圖標(biāo)化時(shí)調(diào)用 ? public void windowClosed(WindowEvent e)。 ? //窗口打開(kāi)時(shí)調(diào)用 ? public void windowIconified(WindowEvent e)。 ? 與窗口有關(guān)的事件接口: ? public interface WindowListener extends EventListener{ ? public void windowClosing(WindowEvent e)。 ? } ? 本接口中有三個(gè)方法,根據(jù)這三個(gè)方法的方法名就能夠知道應(yīng)該是什么時(shí)候調(diào)用哪個(gè)方法執(zhí)行了。 ? public void keyReleased(KeyEvent ev)。 ? 每類(lèi)事件都有對(duì)應(yīng)的事件監(jiān)聽(tīng)器,監(jiān)聽(tīng)器是接口,根據(jù)動(dòng)作來(lái)定義方法。 ? 項(xiàng)目事件( ItemEvent):選中項(xiàng)目。 2.高級(jí)事件(語(yǔ)義事件) ? 動(dòng)作事件( ActionEvent):按鈕按下,TextField中按 Enter鍵。 ? 鍵盤(pán)事件( KeyEvent):鍵按下、釋放。 ? 窗口事件( WindowEvent):關(guān)閉窗口,窗口閉合,圖標(biāo)化。 1.低級(jí)事件 ? 組件事件( ComponentEvent):組件尺寸的變化,移動(dòng)。 ? 低級(jí)事件是指基于組件和容器的事件,當(dāng)一個(gè)組件上發(fā)生事件,如:鼠標(biāo)的進(jìn)入,點(diǎn)擊,拖放等,或組件的窗口開(kāi)關(guān)等,觸發(fā)了組件事件。 ? ,所有事件都是由它派生出來(lái)的。 ? // 本接口只有一個(gè)方法,因此事件發(fā)生時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用本方法,需要做的操作就把代碼寫(xiě)在則個(gè)方法里。 ? (true)。 // 設(shè)置布局管理器 ? (b)。 ? (new ButtonHandler())。 ? public class ep6_11 { ? public static void main(String args[]) { ? Frame f = new Frame(Test)。 ? import .*。 ? 事件處理者:接收事件對(duì)象并對(duì)其進(jìn)行處理的對(duì)象。 ? 在事件處理的過(guò)程中,主要涉及三類(lèi)對(duì)象: ? 事件:用戶(hù)對(duì)界面操作在 java語(yǔ)言上的描述,以類(lèi)的形式出現(xiàn),例如鍵盤(pán)操作對(duì)應(yīng)的事件類(lèi)是KeyEvent。 setBounds() ? 等方法手工設(shè)置組件的大小和位置,但是此方法會(huì)導(dǎo)致平臺(tái)相關(guān),不鼓勵(lì)使用。 ? 4.如果采用無(wú)布局管理器 setLayout(null),則必須使用 ? setLocation()。 ? 3.當(dāng)把 Panel 作為一個(gè)組件添加到某個(gè)容器中后,該 Panel 仍然可以有自己的布局管理器。 ? 2. Panel 無(wú)法單獨(dú)顯示,必須添加到某個(gè)容器中。 ? 1. Frame是一個(gè)頂級(jí)窗口。 ? (true)。 ? (panel, panel)。 ? (page3Bottom = new Button(Bottom button), South)。 ? (page3Top = new Button(Top button), North)。 ? (page3Text = new TextArea(Composite page), Center)。 // 注冊(cè)監(jiān)聽(tīng)器 ? Panel panel = new Panel()。 // 注冊(cè)監(jiān)聽(tīng)器 ? (page2Label = new Label(Label page), page2Label)。 // 設(shè)置為牌布局管理器 layout ? (page1Button = new Button(Button page), page1Button)。 ? public static void main(String args[]) { ? new ep6_9().go()。 // 多行多列的文本區(qū)域 ? Button page3Top。 ? Label page2Label。 // 實(shí)例化一個(gè)牌布局管理器對(duì)象 ? Frame f = new Frame(CardLayout)。 ? import .*。牌布局管理器( CardLayout)就象一副疊得整整齊齊的撲克牌一樣,有 54張牌,但是你只能看見(jiàn)最上面的一張牌,每一張牌就相當(dāng)于牌布局管理器中的每一層。 ? (true)。 // 添加到第三行的第一格 ? (new Button(6))。 // 添加到第二行的第一格 ? (new Button(4))。 // 添加到第一行的第一格 ? (new Button(2))。 ? (new GridLayout(3, 2))。 ? import .*。不一定所有的區(qū)域都有組件,如果四周的區(qū)域( West、 East、 North、 South區(qū)域)沒(méi)有組件,則由 Center區(qū)域去補(bǔ)充,但是如果Center區(qū)域沒(méi)有組件,則保持空白。 ? } ? } ? 在使用 BorderLayout的時(shí)候,如果容器的大小發(fā)生變化,其變化規(guī)律為:組件的相對(duì)位置不變,大小發(fā)生變化。 ? // 第一個(gè)參數(shù)表示把按鈕添加到容器的 Center區(qū)域 ? (200, 200)。 ? // 第一個(gè)參數(shù)表示把按鈕添加到容器的 East區(qū)域 ? (West, new Button(West))。 ? // 第一個(gè)參數(shù)表示把按鈕添加到容器的 North區(qū)域 ? (South, new Button(South))。 ? (new BorderLayout())。 ? import .*。 BorderLayout布局管理器把容器分成 5個(gè)區(qū)域: North, South,East, West和 Center,每個(gè)區(qū)域只能放置一個(gè)組件。按鈕“ Open”本來(lái)在按鈕“ OK”的右邊,但是現(xiàn)在跑到了下面,所以說(shuō)“組件的大小不變,但是相對(duì)位置會(huì)發(fā)生變化”。 ? } ? } ? 當(dāng)容器的大小發(fā)生變化時(shí),用 FlowLayout管理的組件會(huì)發(fā)生變化,其變化規(guī)律是:組件的大小不變,但是相對(duì)位置會(huì)發(fā)生變化。 ? (300, 100)。 ? (button2)。 ? Button button3 = new Button(Close)。 ? Button button1 = new Button(Ok)。 ? public class ep6_5 { ? public static void main(String args[]) { ? Frame f = new Frame()。 【 例 65】 FlowLayout布局管理器例子。 ? ( 3) FlowLayout()。 ? ( 2) FlowLayout()。在其中組件的放置規(guī)律是從上到下、從左到右進(jìn)行放置,如果容器足夠?qū)?,第一個(gè)組件先添加到容器中第一行的最左邊,后續(xù)的組件依次添加到上一個(gè)組件的右邊,如果當(dāng)前行已放置不下該組件,則放置到下一行的最左邊 . 構(gòu)造方法主要下面幾種: ? ( 1) FlowLayout(,20,40)。 ? // 緊湊排列,讓窗口盡量小,小到剛剛能夠包容住 b b2兩個(gè)按鈕 ? (true)。 ? (b2)。t Press Me)。 ? // 設(shè)置布局管理器為 FlowLayout ? b1 = new Button(Press Me)。 ? } ? public void go() { ? f = new Frame(GUI example)。 ? public static void main(String args[]) { ? ep6_4 that = new ep6_4()。 ? private Button b1。 ? import .*。 ? 布局管理器主要包括: FlowLayout、 BorderLayout、GridLayout、 CardLayout、 GridBagLayout。如果試圖使用Java 語(yǔ)言提供的 setLocation(), setSize(), setBounds() 等方法,則都會(huì)被布局管理器覆蓋。容器可以通過(guò)選擇不同的布局管理器來(lái)決定布局。 ? } ? } ? 為了使我們生成的圖形用戶(hù)界面具有良好的平臺(tái)無(wú)關(guān)性,實(shí)現(xiàn)跨平臺(tái)的特性并且獲得動(dòng)態(tài)的布局效果,Java語(yǔ)言中,提供了布局管理器( LayoutManager)這個(gè)工具來(lái)管理組件在容器中的布局,如:排列順序,組件的大小、位置,當(dāng)窗口移動(dòng)或調(diào)整大小后組件如何變化等,而不使用直接設(shè)置組件位置和大小的方式。 ? } ? public void actionPerformed(ActionEvent e) { ? (0)。 ? setVisible(true)。 ? add(scrollpane)。 ? (new Button(four))。 ? (new Button(two))。 ? scrollpane = new ScrollPane()。 ? WindoTen() { ? setLayout(new FlowLayout())。 ? class WindoTen extends Frame implements ActionListener { ? Panel p。 ? import .*。 ? SCROLLBARS_NEVER 指定無(wú)論滾動(dòng)窗格和子組件各自大小如何,永不顯示水平 /垂直滾動(dòng)條。 a有以下取值: ? SCROLLBARS_ALWAYS 指定無(wú)論
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1