日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

JAVA基礎(chǔ)-GUI

瀏覽:21日期:2022-08-31 13:04:52

Java也提供圖像化編程

圖形化

GUI(圖形用戶界面)

GUI

1 Graphical User Interface(圖形用戶接口)

2 用圖形的方式,來顯示計算機(jī)操作的界面,這樣更方便更直觀

CLI

1 Command line User Interface (命令行用戶接口)

2 就是常見的Dos命令行操作

3 需要記憶一些常用的命令,操作不直觀

Java為GUI提供的對象都存在java.Awt和javax.Swing兩個包中

Awt和Swing

java.Awt:Abstract Window ToolKit(抽象窗口 工具包),需要調(diào)用本地系統(tǒng)方法實現(xiàn)功能。屬重量級控件

javax.Swing:在AWT的基礎(chǔ)上,建立的一套圖形界面系統(tǒng),其中提供了更多的組件,而且完全由Java實現(xiàn)。增強(qiáng)了移植性,屬

輕量級控件

繼承關(guān)系圖

JAVA基礎(chǔ)-GUI

Container:為容器,是一個特殊的組件,該組件中可以通過add方法添加其他組件進(jìn)來

布局管理器

容器中的組件的排放方式,就是布局

常見的布局管理器:

FlowLayout(流式布局管理器)從左到右的順序排列Panel默認(rèn)的布局管理器

BorderLayout(邊界布局管理器)東,南,西,北,中Frame默認(rèn)的布局管理器

GridLayout(網(wǎng)格布局管理器)規(guī)則的矩陣

CardLayout(卡片布局管理器)選項卡

GridBagLayout(網(wǎng)格包布局管理器)非規(guī)則的矩陣

建立一個簡單的窗體

Container常用子類:Window Panel(面板,不能單獨存在)

Window常用子類:Frame Dialog

簡單的窗體創(chuàng)建過程:

Frame f = new Frame('my window');f.setLayout(new FlowLayout());f.setSize(500,400);//設(shè)置窗體大小f.setLocation(300,200);//設(shè)置窗體出現(xiàn)在屏幕的位置f.setVisible(true); //設(shè)置窗口可見性

事件監(jiān)聽

事件監(jiān)聽機(jī)制組成

事件源(組件):就是awt包或者swing包中的那些圖形界面組件

事件(Event):每一個事件源都有自己特有的對應(yīng)事件和共性事件

監(jiān)聽器(Listener):將可以觸發(fā)某一個事件的動作(不只一個動作)都已經(jīng)封裝到了監(jiān)聽器中

事件處理(引發(fā)事件后處理方式)

事件監(jiān)聽機(jī)制流程圖

JAVA基礎(chǔ)-GUI

事件監(jiān)聽機(jī)制

1 確定事件源(容器或組件)

2 通過事件源對象的addXXXListener()方法將偵聽器注冊到該事件源上

3 該方法中接收XXXListener的子類對象,或者XXXListener的子類XXXAdapter的子類對象

4 一般用匿名內(nèi)部類來表示

5 在覆蓋方法的時候,方法的參數(shù)一般是XXXEvent類型的變量接收

6 事件觸發(fā)后會把事件打包成對象傳遞給該變量(其中包括事件源對象。通過getSource()或者getComponent()獲取)

import java.awt.*;import java.awt.event.*;import java.io.*;class Test {private Frame f;private TextField tf;private Button but;private TextArea ta;private Dialog d;private Label lab;private Button okBut;Test() {init();}public void init() {f = new Frame('my window');f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());tf = new TextField(60);but = new Button('轉(zhuǎn)到');ta = new TextArea(25,70);d = new Dialog(f,'提示信息-self',true);d.setBounds(400,200,240,150);d.setLayout(new FlowLayout());lab = new Label();okBut = new Button('確定');d.add(lab);d.add(okBut);f.add(tf);f.add(but);f.add(ta);myEvent();f.setVisible(true);}private void myEvent() {okBut.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {d.setVisible(false);}});d.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {d.setVisible(false);}});tf.addKeyListener(new KeyAdapter() {public void keyPressed(KeyEvent e) {if(e.getKeyCode()==KeyEvent.VK_ENTER)showDir();}});but.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {showDir();}});f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}private void showDir() {String dirPath = tf.getText();File dir = new File(dirPath);if(dir.exists() && dir.isDirectory()) {ta.setText('');String[] names = dir.list();for(String name : names) {ta.append(name+'rn');}} else {String info = '輸入信息錯誤,請重輸';lab.setText(info);d.setVisible(true);}}public static void main(String[] args) {new Test();}}

菜單

概述

MenuBar,Menu,MenuItem先創(chuàng)建菜單條,再創(chuàng)建菜單,每一個菜單 中建立菜單項也可以菜單添加到菜單中,作為子菜單通過setMenuBar()方法,將菜單添加到Frame中

菜單繼承體系

JAVA基礎(chǔ)-GUI

代碼示例

import java.awt.*;import java.awt.event.*;class Test {private Frame f;private MenuBar mb;private Menu m,subMenu;private MenuItem closeItem,subItem;Test(){init();} public void init(){f = new Frame('my window');f.setBounds(300,100,500,600);f.setLayout(new FlowLayout());mb = new MenuBar();m = new Menu('文件');subMenu = new Menu('子菜單');subItem = new MenuItem('子條目');closeItem = new MenuItem('退出');subMenu.add(subItem);m.add(subMenu);m.add(closeItem);mb.add(m);f.setMenuBar(mb);myEvent();f.setVisible(true);}private void myEvent() {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 static void main(String[] args) {new Test();}}

可執(zhí)行Jar包

1 將多個類封裝到了一個包(package)中。

2 定義一個jar包的配置信息。

3 定義一個文件a.txt,文件內(nèi)容內(nèi)容為:Main-Class:(空格)包名.類名(回車)

4 打jar包。jar -cvfm my.jar a.txt 包名

5 通過winrar程序進(jìn)行驗證,查看該jar的配置文件中是否有自定義的配置信息

6 通過工具?文件夾選項?文件類型?jar類型文件,通過高級,定義該jar類型文件的打開動作的關(guān)聯(lián)程序jdkbinjavaw.exe -jar

package mymenu;import java.awt.*;import java.awt.event.*;import java.io.*;public class Test {private Frame f;private MenuBar bar;private TextArea ta;private Menu fileMenu;private MenuItem openItem,saveItem,closeItem;private FileDialog openDia,saveDia;private File file;Test() {init();}public void init() {f = new Frame('my window');f.setBounds(300,100,650,600);bar = new MenuBar();ta = new TextArea();fileMenu = new Menu('文件');openItem = new MenuItem('打開');saveItem = new MenuItem('保存');closeItem = new MenuItem('退出');fileMenu.add(openItem);fileMenu.add(saveItem);fileMenu.add(closeItem);bar.add(fileMenu);f.setMenuBar(bar);openDia = new FileDialog(f,'我要打開',FileDialog.LOAD);saveDia = new FileDialog(f,'我要保存',FileDialog.SAVE);f.add(ta);myEvent();f.setVisible(true);}private void myEvent() {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.flush();bufw.close();} catch (IOException ex) {throw new RuntimeException();}}});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 ;ta.setText('');file = new File(dirPath,fileName);try {BufferedReader bufr = new BufferedReader(new FileReader(file));String line = null;while((line = bufr.readLine()) != null) {ta.append(line+'rn');}bufr.close();} catch (IOException ex) {throw new RuntimeException('讀取失敗');}}});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 static void main(String[] args) {new Test();}}

以上就是JAVA基礎(chǔ)-GUI的詳細(xì)內(nèi)容,更多關(guān)于JAVA GUI的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美成人a交片免费看| 免费视频最近日韩| 国产毛片精品| 国产精品九九| 麻豆精品视频在线| 国产欧美啪啪| 国产精品久久久一区二区| 国产日产精品一区二区三区四区的观看方式| 亚洲精品婷婷| 国产亚洲一区二区三区啪| 国产日韩视频在线| 精品三级av| 日韩天堂在线| 99国产精品私拍| 亚洲精品影视| 久久不见久久见中文字幕免费 | 国产精品夜夜夜| 国产日韩中文在线中文字幕| 国产高清精品二区| 韩国精品主播一区二区在线观看| 亚洲高清毛片| 免费久久99精品国产自在现线| 在线精品国产亚洲| 国产欧美高清| 精品亚洲美女网站| 中国女人久久久| 欧美日韩网址| 一区二区三区四区日本视频| 自拍日韩欧美| 香蕉久久夜色精品国产| 青草av.久久免费一区| 欧美xxxx性| 日本高清不卡一区二区三区视频| 欧美日韩四区| 国产精品一在线观看| 日韩欧美二区| 一区二区三区国产盗摄| 欧美激情视频一区二区三区在线播放| 天堂√8在线中文| 亚洲少妇诱惑| 麻豆精品国产91久久久久久| 欧美jjzz| 国产精品入口久久| 欧美国产91| 国产欧美日韩亚洲一区二区三区| 日韩中文欧美| 日韩欧美中文在线观看| 精品国产精品久久一区免费式 | 三级小说欧洲区亚洲区| 日韩影院精彩在线| 日韩88av| 亚洲免费专区| 久久久久国产精品一区三寸| 四虎在线精品| 99精品电影| 国产精品啊啊啊| 一区久久精品| 久久精品国产99国产| 视频一区视频二区中文| 精品一区二区三区亚洲| 欧美综合二区| 欧美日韩视频网站| 国产美女精品视频免费播放软件| 美女少妇全过程你懂的久久| 国产精品夜夜夜| 人人爽香蕉精品| 五月激情久久| 欧美国产亚洲精品| 亚洲精品综合| 欧美成人精品| 国产一区二区三区探花| 亚洲欧美日韩国产一区| 91日韩在线| 国产一级成人av| 婷婷综合激情| 欧美日韩国产观看视频| 国产亚洲电影| 鲁大师影院一区二区三区| 欧美一区久久久| 卡一精品卡二卡三网站乱码| 色综合视频一区二区三区日韩 | 美国三级日本三级久久99| 天堂а√在线最新版中文在线| 国产私拍福利精品视频二区| 最新日韩av| 黑森林国产精品av| 国产精品亚洲欧美| 日韩一区二区三区高清在线观看| 亚洲小说欧美另类婷婷| 精品久久久久久久| 国产精品第一国产精品| 日韩精选在线| 中文字幕日本一区| 午夜视频精品| 99久久亚洲精品| 天堂а√在线最新版中文在线| 久久av导航| 国产精品男女| 91午夜精品| 综合激情五月婷婷| 欧美日韩精品一本二本三本| 久久精品1区| 波多野结衣久久精品| 国产成人精品福利| 久久伊人久久| 国产精品蜜月aⅴ在线| 欧美视频久久| 久久国产麻豆精品| 国产亚洲精品精品国产亚洲综合| 日韩福利在线观看| 日韩欧美另类中文字幕| 四虎在线精品| 日韩中文一区二区| 日韩欧美高清一区二区三区| 老鸭窝毛片一区二区三区| 91精品观看| 99xxxx成人网| 国产精品日韩欧美一区| 伊人成人网在线看| 国产免费成人| 蜜臀av一区二区三区| 中文字幕免费一区二区| 日本一不卡视频| 奇米亚洲欧美| 国产精品亚洲二区| 国产成人精品亚洲线观看| 91一区二区| 色88888久久久久久影院| 欧美不卡在线| 亚洲一区二区毛片| 天堂精品久久久久| 国产精品伊人| 国产一区二区三区国产精品| 国产精品久久观看| 久久九九99| 日韩视频一区| 日韩在线观看一区二区三区| 97久久精品| 国产精品三p一区二区| 国产精品99视频| 久久精品免费一区二区三区 | 亚洲啊v在线免费视频| 91精品一区| 国产精品qvod| 欧美日韩免费观看视频| 国户精品久久久久久久久久久不卡 | 欧美搞黄网站| 男女男精品视频网| 国产欧美日韩| 欧美三级网址| 九九在线精品| 亚洲乱码一区| 国产精品亚洲一区二区在线观看 | 五月婷婷六月综合| 日韩精品一二三| 国产精品调教视频| se01亚洲视频| 免费看精品久久片| 国产精品久久久久久久免费软件 | 激情视频一区二区三区| 国产毛片一区| 国产精品调教| 久久高清免费| 午夜电影一区| jizzjizz中国精品麻豆| 国产视频一区欧美| 国产伦精品一区二区三区视频| 高潮一区二区| 中文字幕日本一区二区| 精品国产亚洲日本| 99香蕉国产精品偷在线观看 | 欧美aⅴ一区二区三区视频| 欧美羞羞视频| 日本在线一区二区三区| 9999国产精品| 伊人www22综合色| 国产一区二区三区探花| 亚洲欧美日韩国产一区二区| 久久中文字幕一区二区三区| 伊人影院久久| 精品国产一区二区三区av片| 欧美日韩国产探花| 国产精品最新| 黑丝一区二区三区| 日本视频一区二区| 激情欧美一区二区三区| 欧美日本不卡高清| 久久国产亚洲精品| 久久精品xxxxx| 欧美成人国产| 精品在线网站观看| 午夜电影一区| 亚洲特色特黄| 国产精品久久久久av蜜臀| 午夜欧美在线| 欧美www视频在线观看| 日韩精品福利一区二区三区| 91精品国产91久久久久久黑人| 国产日韩欧美一区在线| 激情综合激情|