----------android教育訓練、java教育訓練、java學習型技術部落格、期待與您交流!------------
在此,分享一下自己學習JAVA的學習心得。有不對的地方請幫忙改正,也希望對想學java的同學有幫助!
JAVA基礎
—GUI
GUI概述
GUI • Graphical User Interface(圖形使用者接口)。
• 用圖形的方式,來顯示計算機操作的界面,這樣更友善更直 觀。
CLI • Command line User Interface (指令行使用者接口)
• 就是常見的Dos指令行操作。
• 需要記憶一些常用的指令,操作不直覺。
Awt與Swing
• java.Awt:Abstract Window ToolKit (抽象視窗 工具包 ),需要調用本地系統方法實作功能。屬 重量級控件。 • javax.Swing:在AWT的基礎上,建立的一套圖 形界面系統,其中提供了更多的元件,而且完全 由Java實作。增強了移植性,屬輕量級控件。
繼承關系圖
Container:為容器,是一個特殊的元件,該元件中可以通過add 方法添加其他元件進來。
布局管理器
容器中的元件的排放方式,就是布局。
常見的布局管理器:
1).FlowLayout(流式布局管理器)
從左到右的順序排列。
2).Panel預設的布局管理器。
3).BorderLayout(邊界布局管理器)
東,南,西,北,中 •Frame預設的布局管理器。
4).GridLayout(網格布局管理器)
規則的矩陣
5).CardLayout(卡片布局管理器)
頁籤
6).GridBagLayout(網格包布局管理器)
非規則的矩陣
建立圖形化界面:
1,建立frame窗體。
2,對窗體進行基本設定。
比如大小,位置,布局。
3,定義元件。
4,将元件通過窗體的add方法添加到窗體中。
5,讓窗體顯示,通過setVisible(true)。
事件監聽機制流程圖
事件監聽機制的特點:
1,事件源。
2,事件。
3,監聽器。
4,事件處理。
事件源:就是awt包或者swing包中的那些圖形界面元件。
事件:每一個事件源都有自己特有的對應事件和共性事件。
監聽器:将可以觸發某一個事件的動作(不隻一個動作)都已經封裝到了監聽器中。
視窗監聽器:WindowListener
事件:ActionListener
滑鼠事件:MouseListener
鍵盤事件:KeyListener
JAVA練習代碼:
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
class MyMenuDemo{
private Frame f;//視窗
private MenuBar mb;//菜單欄
private TextArea ta;//文本框區域
private Menu m,submenu;//菜單
private MenuItem closeItem,subItem,openItem,saveItem;//菜單條目
private FileDialog openDia,saveDia;//對話框
private File file;
MyMenuDemo(){
init();
}
public void init(){
f = new Frame("my window");
//設定視窗大小位置
f.setBounds(300,100,500,600);//x, y, width, height
//f.setLayout(new FlowLayout());
mb = new MenuBar();
ta = new TextArea();
m = new Menu("檔案");
submenu = new Menu("子菜單");
subItem = new MenuItem("子條目");
openItem = new MenuItem("打開");
saveItem = new MenuItem("儲存");
closeItem = new MenuItem("退出");
m.add(openItem);
m.add(saveItem);
submenu.add(subItem);
m.add(submenu);
m.add(closeItem);
mb.add(m);
f.setMenuBar(mb);
//對話框設定
openDia = new FileDialog(f,"打開",FileDialog.LOAD);
saveDia = new FileDialog(f,"儲存",FileDialog.SAVE);
f.add(ta);
myEvent();//事件
f.setVisible(true);//
}
private void myEvent(){
//打開事件
openItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
openDia.setVisible(true);
String dirPath = openDia.getDirectory();
String fileName = openDia.getFile();
if(dirPath == null || fileName == null)
return;
file = new File(dirPath,fileName);
try {
BufferedReader bufr = new BufferedReader(new FileReader(file));
String line = null;
while((line = bufr.readLine())!= null){
ta.append(line + "\r\n");
}
bufr.close();
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
});
//儲存事件
saveItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(file == null)
{
saveDia.setVisible(true);
String dirPath = saveDia.getDirectory();
String fileName = saveDia.getFile();
if(dirPath == null || fileName == null)
return;
file = new File(dirPath,fileName);
}
try {
BufferedWriter bufw = new BufferedWriter(new FileWriter(file));
String text = ta.getText();
bufw.write(text);
bufw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
//關閉事件
closeItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}
public class Demo {
public static void main(String[] args) {
new MyMenuDemo();
}
}