亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用Java快速開發LinuxGUI應用

2019-11-18 13:33:51
字體:
來源:轉載
供稿:網友

  摘要:
  linux系統在近幾年發展神速,但是由于其GUI應用程序開發方法及其標準不統一導致開發效率低,界面不友好。而java語言是一種極具潛力的多平臺應用軟件開發工具,在Linux平臺上用Java開發GUI應用的技術目前國內仍極少使用。本文將對該方法的細節、特點及其意義作具體論述。
  要害詞:
  Linux、開放源代碼、GUI、Java、組件、容器、布局治理器
  
  1、為什么要用Java開發Linux GUI應用
  1.1 Linux GUI應用開發現狀
  目前Linux操作系統在市場上呈現一種"叫好不叫座"的局面,在一定的程度上與在其上運行的好用的應用程序數量太少有著的密切的關系。盡管能在Linux上運行的應用程序已經很多,但大多數都較難安裝與使用,而且很多不是很穩定。
  要改善Linux應用程序的易用性,大量采用GUI(圖形用戶界面)是一個必然的趨勢。但是目前Linux平臺GUI應用程序的開發仍然不太輕易。盡管有不少的開放源碼開發工具在極力增強其GUI應用程序開發能力,但是由于標準不統一、資料太少等原因很難推廣。Kylix等商業開發工具盡管具有大公司的技術實力支撐,但由于價格等因素也難以很快推廣。這種局面不盡快打破,Linux的應用就不可能得到很快的普及。
  綜上所述,目前Linux應用軟件開發領域急需一種輕易學習、成本低、效率高的GUI應用程序開發方法。
  1.2 Java的特點
  自1995年Sun Microsystem推出Java語言以來,Java語言與Java技術均得到了飛速的發展。因其強大的網絡功能、良好的跨平臺特性、較高的開發效率成為國內外軟件開發領域的一種強大工具。
  目前Java程序已經能運行在從Windows系列、Unix系列、Mac OS系列到Linux等幾乎所有操作系統平臺上,而且非凡重要的是它已經能做到"一次編寫,到處運行";另一方面,與C++等傳統程序設計語言相比,用Java來開發GUI應用程序的難度已經大大降低;加上Java語言所具有的純面向對象、網絡功能強大等特性,使得Java非常適于用來編制應用軟件。
  1.3 用Java開發Linux GUI應用的優點
  正由于Java語言的特點以及Linux操作系統的發展現狀,使得用Java語言來開發Linux平臺GUI應用程序成為了一種很好的方法。
  一方面,用Java語言在Linux平臺上開發GUI應用程序對于習慣了在Windows平臺上用Java編程的程序員來說無須改變編程習慣。因為Java有良好的跨平臺特性,在Linux下編程與在Windows下編程沒什么兩樣,假如用純Java編程,則程序中使用的類、屬性、方法等等都不用改變,甚至還可以在Windows下編輯、編譯好Java程序再直接移植到Linux下執行。
  另一方面,由于在Linux平臺上存在大量的優秀的開放源代碼軟件開發工具,包括用于Java程序開發的如NetBeans等工具,這樣假如在Linux平臺上用這些開放源代碼軟件開發工具進行Java軟件開發,其所需的成本可以比在Windows下進行開發低得多。當然在Linux下也存在像Borland Jbuilder、IBM Visual Age等商業Java軟件開發工具,它們都具有強大的功能、完備的文檔,更有利于在Linux上進行Java軟件開發。
  
  2、用Java開發Linux GUI應用的基本方法
  2.1 開發環境的安裝與配置
  *JDK的安裝
  要Linux平臺上開發Java應用,最基本的方式需要下載一個JDK,這是由Sun公司免費提供的一個Java軟件開發包。下載得到的文件一般形如j2sdk1.3-linux.rpm.bin,首先將其拷貝到合適的目錄(如/usr/src或/usr/local等)下,執行./j2sdk1.3-linux.rpm.bin,會產生一個j2sdk1.3-linux.rpm文件,這是一個典型的RPM軟件包,再用RPM軟件包治理工具就可直接安裝JDK,在安裝過程中會提示許可信息,同意其協議就可很順利地安裝了。
  *路徑的配置
  為了做到在任意路徑下均可直接執行Java編程相關命令,需要修改/etc/PRofile文件,在其中設置路徑。具體方法是在其中加入這樣一行:
  PATH="$PATH/usr/jdk1.3"
  這里/usr/jdk1.3是JDK的安裝路徑。
  2.2 基本開發過程
  ①編輯源程序
  在Linux下有很多優秀的程序編輯器軟件,例如在控制臺下有聞名的Emacs、vi、jed等,在X window下有Xemacs、gedit、kedit等,這些軟件通常都有語法著色、自動縮進等非常適合于程序編輯的功能。要在Linux系統下開發Java程序,首先需要用這些編輯器編輯Java源程序。至于具體用哪種編輯器要依個人的喜好而定,反正可用的軟件很多。
 ?、诰幾g源程序
  正確的編輯好Java源程序后,需要對其進行編譯,以生成字節碼文件。假定源程序文件名為Test.java,則可用如下形式:
  javac Test.java
  ③調試運行程序
  執行守編譯命令后,對于源程序中的每一個類,系統將產生一個字節碼文件,文件名為對應的類名,而其擴展名為class。一般地,每一個Java程序中應該有一個主類,該類是整個程序的入口。開發Java程序的下一步就是調試運行,仍以上面提到的情況為例,運行該Java程序的方法為:
  java Test
  事實上解釋器將解釋執行Test.class文件并按其中的調用解釋執行其它字節碼文件。
  2.3 基本開發方法
  其實無論在什么平臺下,GUI應用程序的基本開發方法都是相似的。一般都包括下面這樣四個步驟:
 ?、賱摻ㄈ萜?br />  首先要創建一個GUI應用程序,需要創建一個用于容納所有其它GUI組件元素的載體,Java中稱為容器。典型的包括窗口(Window)、框架(Frame/JFrame)、對話框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先創建了這些容器,其它界面元素如按鈕(Button/JButton)、標簽(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。
  ②添加組件
  為了實現GUI應用程序的功能,為了與用戶交換,需要在容器上添加各種組件/控件。這需要根據具體的功能要求來決定用什么組件。例如,假如需要提示信息,可用標簽(Label/JLabel);假如需要輸入少量文本,可用文本框(TextField/JTextField);假如需要輸入較多文本,可用文本區域(TextArea/JTextArea);假如需要輸入密碼,可用密碼域(JPassWordField)等等。
  ③安排組件
  與傳統的Windows環境下的GUI軟件開發工具不同,為了更好地實現跨平臺,Java程序中各組件的位置、大小一般不是以絕對量來衡量,而是以相對量來衡量。例如有時候,程序的組件的位置是按"東/East"、"西/West"、"南/South"、"北/North"、"中/Center"這種方位來標識的。因此,在組織界面時,除了要考慮所需的組件種類外,還需要考慮如何安排這些組件的位置與大小。這一般是通過設置布局治理器(Layout Manager)及其相關屬性來實現的。事實上上述按方位來安排組件就是采用了Java中多種布局治理器里的BorderLayout布局治理器。
 ?、芴幚硎录?br />  為了完成一個GUI應用程序所應具備的功能,除了適當地安排各種組件產生美觀的界面外,還需要處理各種界面元素事件,以便真正實現與用戶的交換,完成程序的功能。在Java程序中這一般是通過實現適當的事件監聽者接口來完成的。比如假如需要響應按鈕事件,就需要實現ActionListener監聽者接口;假如需要響應窗口事件,就需要實現WindowListener監聽者接口。
  
  3、開發實例
  下面是一個在Linux下用Java開發GUI應用程序的實例。該程序的主要功能是提供一個用于輸入用戶名與密碼以登錄到某一系統的界面,假如用戶輸入相關信息后單擊"登錄"按鈕,系統將在窗口的下半部分顯示所輸入的用戶名與密碼信息,假如單擊"退出"按鈕,程序將停止運行。如下圖1所示:
  
  本程序沒有提供很強的功能,目的只在于介紹在Linux上用Java編寫GUI應用程序的基本方法。以下是程序的源代碼,其中的注釋說明了GUI應用具體的創建步驟:
  
  //以下三行用于引入添加組件、設置布局治理器及處理事件所需的軟件包
  import java.awt.*;
  import java.awt.event.*;
  import javax.swing.*;
  //下行說明主類派生自JFrame/框架類,要實現ActionListener接口以處理動作事件
  class LoginFrame extends JFrame implements ActionListener {
  //以下四行用于聲明要加到框架窗口中的所有組件
  JLabel UserLabel,PasswordLabel,UserResult,PasswordResult;
  JTextField User;
  JPasswordField Password;
  JButton LoginButton,ExitButton;
  public LoginFrame() {
  super("登錄");//調用父類構造方法,設置窗口標題
  setSize(300,200);//設置窗口大小
  getContentPane().setLayout(new GridLayout(5,2,10,10));//設置布局治理器,將窗口分成5行2列,行、列間保留10個像素的空白
  //以下8行具體創建組件實例
  UserLabel=new JLabel("用戶名稱:");
  PasswordLabel=new JLabel("用戶密碼:");
  UserResult=new JLabel(" ");
  PasswordResult=new JLabel(" ");
  User=new JTextField(10);
  Password=new JPasswordField(10);
  LoginButton=new JButton("登錄");
  ExitButton=new JButton("退出");
  //以下兩行設置用于保存結果的標簽的前景色屬性
  UserResult.setForeground(Color.blue);
  PasswordResult.setForeground(Color.blue);
  //以下兩行為"登錄"按鈕與"退出"按鈕注冊監聽者
  LoginButton.addActionListener(this);
  ExitButton.addActionListener(this);
  //以下八行將所有組件加入到框架窗口中
  getContentPane().add(UserLabel);
  getContentPane().add(User);
  getContentPane().add(PasswordLabel);
  getContentPane().add(Password);
  getContentPane().add(LoginButton);
  getContentPane().add(ExitButton);
  getContentPane().add(UserResult);
  getContentPane().add(Password

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲激情久久久| 欧美日韩在线影院| 国产精品爽爽爽| 精品久久久中文| 国产精品日韩一区| 精品欧美国产一区二区三区| 在线电影av不卡网址| 欧美电影免费观看网站| 欧美中文字幕视频在线观看| 亚洲国产精品va在线观看黑人| 欧美xxxx综合视频| 国产精品69精品一区二区三区| 91亚洲永久免费精品| 性色av一区二区三区| 欧美日韩在线第一页| 国产免费成人av| 欧美最猛性xxxxx(亚洲精品)| 欧美国产日韩中文字幕在线| 久久琪琪电影院| 欧美在线不卡区| 国产精品欧美在线| 欧美午夜丰满在线18影院| 岛国精品视频在线播放| 亚洲午夜女主播在线直播| 欧美性色视频在线| 岛国视频午夜一区免费在线观看| 日本精品久久中文字幕佐佐木| 欧美午夜精品久久久久久久| 日韩av观看网址| 亚洲色无码播放| 色偷偷9999www| 亚洲桃花岛网站| 日韩精品视频免费在线观看| 日韩在线视频免费观看高清中文| 国产精品老牛影院在线观看| 97国产精品视频人人做人人爱| 国产精品一区二区电影| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲天堂av在线免费| 亚洲欧美日韩精品久久奇米色影视| 亚洲一品av免费观看| 91国内揄拍国内精品对白| 欧美国产高跟鞋裸体秀xxxhd| 狠狠色狠色综合曰曰| 日韩中文在线中文网在线观看| 欧美成人中文字幕在线| 亚洲精品少妇网址| 国产小视频91| 久久久精品影院| 日韩视频第一页| 日韩国产欧美精品在线| 亚洲3p在线观看| 精品久久久国产精品999| 中文字幕亚洲专区| 欧美寡妇偷汉性猛交| 成人激情视频在线播放| 自拍偷拍免费精品| 欧美伊久线香蕉线新在线| 欧美亚洲成人免费| 亚洲视频在线观看网站| 九九热这里只有精品免费看| 成人激情视频免费在线| 日韩电影中文字幕av| 亚洲欧美综合图区| 亚洲欧美国产精品久久久久久久| 国产欧美日韩91| 欧美在线视频在线播放完整版免费观看| 欧美成人午夜剧场免费观看| 日韩电影中文 亚洲精品乱码| 97视频色精品| 国产精品成人一区二区| 国产视频丨精品|在线观看| 亚洲精品中文字幕有码专区| 日韩网站免费观看| 美女国内精品自产拍在线播放| 九九综合九九综合| 国产精品福利小视频| 日韩av黄色在线观看| 青青在线视频一区二区三区| 最近2019年中文视频免费在线观看| 久久久久久久色| 岛国av一区二区三区| 日韩成人av网| 国产午夜精品麻豆| 欧美寡妇偷汉性猛交| 亚洲精品福利免费在线观看| 久久激情视频免费观看| 久久久久久久国产| 岛国精品视频在线播放| 51色欧美片视频在线观看| 久久久久一本一区二区青青蜜月| 欧美影院成年免费版| 欧美在线免费看| 欧美黑人一级爽快片淫片高清| 欧美视频精品一区| www.日韩欧美| 欧美成人精品一区二区三区| 成人黄色在线播放| 国产视频久久久久久久| 久久久久久久久久久91| 色无极影院亚洲| 国产精品成人av在线| 国模精品视频一区二区三区| 欧美大尺度激情区在线播放| 亚洲天堂开心观看| 欧美成人在线影院| 国产suv精品一区二区| 亚洲性xxxx| 国产999在线| 久久99精品久久久久久噜噜| 91九色国产社区在线观看| 欧美日产国产成人免费图片| 日本在线精品视频| 亚洲丝袜一区在线| 5566日本婷婷色中文字幕97| 国产成人精品电影| 在线午夜精品自拍| 91九色国产视频| 91免费欧美精品| 中文字幕亚洲欧美日韩高清| 亚洲风情亚aⅴ在线发布| 日韩亚洲欧美中文在线| 一区二区三区高清国产| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲天堂一区二区三区| 欧美激情亚洲视频| 日韩av中文在线| 欧美激情精品久久久久久黑人| 日韩av免费网站| 欧美亚洲成人网| 亚洲天堂一区二区三区| 久久久久久久香蕉网| 国产精品自在线| 亚洲午夜色婷婷在线| 欧美性xxxx极品hd欧美风情| 26uuu日韩精品一区二区| 国产午夜精品全部视频播放| 亚洲第一偷拍网| 一夜七次郎国产精品亚洲| 国产精品日韩欧美综合| 欧美午夜影院在线视频| 国产91ⅴ在线精品免费观看| 欧美最猛性xxxxx(亚洲精品)| 欧美成aaa人片在线观看蜜臀| 欧美中文字幕在线观看| 欧美电影在线播放| 日韩免费在线播放| 在线视频一区二区| 日韩中文视频免费在线观看| 欧美激情图片区| 国产精品第七影院| 九九热精品视频国产| 欧美成人免费观看| 日韩最新中文字幕电影免费看| 日韩美女在线播放| 66m—66摸成人免费视频| 久久精品视频一| 亚洲欧美www| 欧美国产中文字幕| 亚洲午夜精品久久久久久久久久久久| 97精品伊人久久久大香线蕉| 欧美日韩国产精品一区| 久久成人精品视频| 国产午夜精品理论片a级探花|