【java程式設計】GUI之綜合練習(二)
1.選單的包含關係
下面是一個簡單的示例:
需求:實現一個簡單的記事本,功能包括:開啟,儲存,退出
import java.awt.*; import java.awt.event.*; import java.io.*; class MenuDemo { public static void main(String[] args) { new myMenu(); } } class myMenu { private Frame f; private MenuBar bar; private Menu fileMenu; private MenuItem openMenuItem; private MenuItem saveMenuItem; private MenuItem exitMenuItem; private TextArea ta; private File file; private FileDialog openDia; private FileDialog saveDia; myMenu() { init(); } public void init() { f=new Frame("My Frame"); f.setBounds(500,400,600,500); bar=new MenuBar(); fileMenu=new Menu("選單"); openMenuItem=new MenuItem("開啟"); saveMenuItem=new MenuItem("儲存"); exitMenuItem=new MenuItem("退出"); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.add(exitMenuItem); ta=new TextArea(); bar.add(fileMenu); f.setMenuBar(bar); f.add(ta); myEvent(); f.setVisible(true); } public void myEvent() { //窗體關閉事件 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //退出子條目事件 exitMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); //為openDia子條目新增開啟事件 openMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { openDia=new FileDialog(f,"開啟",FileDialog.LOAD); openDia.setVisible(true); String DirPath=openDia.getDirectory(); String filename=openDia.getFile(); if(DirPath==null || filename==null) return; file=new File(DirPath,filename); ta.setText(""); try { BufferedReader bufr=new BufferedReader(new FileReader(file)); String line=null; while((line=bufr.readLine())!=null) { ta.append(line+"\r\n"); } } catch (IOException ex) { throw new RuntimeException("關閉流失敗"); } } }); //為saveDia子條目新增事件 saveMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(file==null) { saveDia=new FileDialog(f,"儲存",FileDialog.SAVE); saveDia.setVisible(true); String DirPath=saveDia.getDirectory(); String filename=saveDia.getFile(); if(DirPath==null || filename==null) return; File file=new File(DirPath,filename); } try { BufferedWriter bufw=new BufferedWriter(new FileWriter(file)); String text=ta.getText(); bufw.write(text); bufw.close(); } catch (IOException ex) { throw new RuntimeException("關閉流失敗"); } } }); } }
相關推薦
【java程式設計】GUI之綜合練習(二)
1.選單的包含關係 下面是一個簡單的示例: 需求:實現一個簡單的記事本,功能包括:開啟,儲存,退出 import java.awt.*; import java.awt.event.*; import java.io.*; class MenuDemo { publi
【java程式設計】IO流之流操作物件
流操作物件的方法: ObjectInputStream和ObjectOutputStream兩個物件,用ObjectOutputStream儲存的物件只能用ObjectInputStream來進行讀取 Serializable序列化: 每個類在實現Serialiable序列
【java程式設計】Map集合之TreeMap按學生姓名進行升序排序
import java.util.*; /*要對鍵值對進行排序,只能用TreeMap來排序 HashMap底層是雜湊表,雜湊表是隨機的*/ class TreeMapDemo { public static void main(String[] args) {
【java學習】GUI 圖形程式設計
1,相關外掛 對於新手來說,不要在一開始使用此類外掛。當你能自己寫出來程式碼的時候,才是使用此類外掛的時候,為了加快開發效率。加油! 1)eclipse windowbuilder視覺化設計介面 ①安裝 登陸網址:http://eclipse.org/windo
【java程式設計】IO流和集合類綜合題目
需求: 1.有5個學生,每個學生有三門功課 2.從鍵盤輸入以上資料(姓名,三門課成績) 3.輸入格式為:zhangshan,30,40,60並計算出總成績 4.把學生資訊和計算出來的總成績按從低到高的順序進行儲存 思路: 1.先建立一個學生物件,實現比較器,讓學生物件自身具
【Java程式設計】寫入、讀取、遍歷Properties檔案
在Java開發中通常我們會儲存配置引數資訊到屬性檔案。這種屬性檔案能夠是擁有鍵值對的屬性檔案,也能夠是XML檔案。關於XML檔案的操作,請參考博文【Java程式設計】DOM XML Parser 解析、遍歷、建立XML。 在該篇博文中,我將展示怎樣向屬性檔案寫入鍵值對。怎樣讀取屬性檔案
【Java併發】synchronized之偏向鎖和輕量級鎖
synchronized之偏向鎖和輕量級鎖 上下文切換 synchronized 鎖的升級與對比 偏向鎖 輕量級鎖 參考 上下文切換 即使是單核處理器也支援多執行緒執行程式碼執行程式碼,CPU通
【Java 程式設計】Java 開發實踐與經驗:BetterJava
文章目錄 1. 風格 2. 依賴注入 3. 避免使用 null 4. Immutable-by-default 5. 介面預設方法代替各種 util 類 6. Streams 7. 部署 8. Maven
104.【JAVA程式設計】Java虛擬機器
棧是執行時的單位,而堆是儲存的單元。 棧解決程式的執行問題,即程式如何執行,或者說如何處理資料,堆解決的是資料儲存的問題,即資料怎麼放,放在哪兒。
102.【JAVA程式設計】stream
public class TestStream { public static void main(String[] args) { List<People> list = createPeople(); Stream<People
101.【JAVA程式設計】反射
public class ReflectDemo { public static void main(String[] args)throws Exception { Class clazz = Class.forName("com.abyiyi.reflect.P
100.【JAVA程式設計】列舉詳解
列舉:是有界集合體 public class EnumDemo { enum SexEnum { MAN, WOMAN } public static void main(String[] args){ for(Se
【JAVA程式設計】--分散式鎖基礎
1.實現分散式鎖需要考慮的幾點: 1.1執行緒和鎖關係 拿最常用的互斥鎖來說 synchronized內建鎖是作用於物件,java中每個物件是唯一存在的, 每個物件的物件頭中包含獲取該物件鎖的執行緒ID,那就保證了執行緒對該物件鎖的唯一性。 ReentrantLock內含Syn
【JAVA程式設計】--程式碼優化細節
1.儘量指定類、方法的final修飾符 帶有final修飾符的類是不可派生的。在Java核心API中,有許多應用final的例子,例如java.lang.String,整個類都是final的。為類指定final修飾符可以讓類不可以被繼承,為方法指定final修飾符可以讓方法不可以
【JAVA程式設計】--類載入機制
Object 類的方法 --public Object clone() 需要事項cloneable介面 --public Boolean equal()比較物件 --public String toString() 物件轉化成字串 --public Long hashCode() 輸出
109.【JAVA程式設計】HashMap迴圈
1.鍵值都需要時使用 1.1鍵值都需要時使用 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry :
【Java程式設計】呼叫方法判斷一個數是否是素數
上次寫了素數的判斷,這次又寫了素數的判斷,但是這次做了一些改進,把判斷的程式寫到方法裡面,要使用的時候直接呼叫即可。 本次實現了 程式碼如下: public static boolean judgme
【Java程式設計】Java多執行緒的實現
多執行緒 程式:是一個指令的集合。 程序:正在執行中的程式,是一個靜態的概念。 執行緒:是程序中的一個單一的連續控制流程,執行緒又本稱為輕量級程序。 一個程序可擁有多個並行的執行緒,一個程序中的執行緒共享相同的記憶體單元,記憶體地址空間,可以訪問相同的變數和物件,而且他們從
【Java程式設計】可變引數寫法
當你在做專案時,有一個計算傳入引數的和,但引數多少不確定,面對這樣的情況要如何解決呢? 可變引數的寫法請參考下面的例子 package com.ycao.argsTest; public class VarArgs { public static void mai
【Java程式設計】DOM XML Parser解析、遍歷、建立XML
1、前言 DOM XML Parser介紹 DOM 是 W3C 處理 XML 的標準 API,它是許多其它與 XML 處理相關的標準的基礎,不僅是 Java,其它諸如 Javascript,PHP,MS .NET 等等語言都實現了該標準,成為了應用最為廣泛的 XML 處理方