⑴ 如何在Eclipse中進行java的可視化界面設計
准備工作:
1、下載JDK;
2、下載Eclipse;
3、下載相應的EMF、GEF、VE;
注意:三個插件的版本要和Eclipse的版本配套才能正確使用,至於配套的說明請參考下載頁面的說明http://download.eclips.org/ve
開始安裝:
1、安裝JDK;
這個比較容易,標準的Windows安裝程序,下一步,再下一步即可,安裝完成後,也不需要重啟。
2、安裝Eclipse;
Eclipse是綠色軟體,不需要安裝,只需要解壓縮,然後即可運行。
為了說明方便,我把它解壓縮到C盤根目錄下,得到C:\eclipse目錄,運行C:\eclipse\eclipse.exe即可。
注意:下面的安裝,需要先關閉eclipse程序。
3、安裝EMF、GEF、VE;
對於Eclipse來說,這些都是它的插件,所以,安裝方法都是一樣的。插件下載地址http://download.eclips.org/ve
A、在C:\eclipse目錄下,建立四個子目錄:C:\eclipse\emf、C:\eclipse\gef、C:\eclipse\ve、C:\eclipse\links;
B、把下載的EMF、GEF、VE都解壓縮到相應的目錄中,即:把EMF壓縮包解壓縮到C:\eclipse\emf中,得到C:\eclipse\emf\eclipse目錄,以此類推,完成GEF、VE的解壓縮;
C、在C:\eclipse\links目錄下,新建一個文本文件,名字可隨便取,如:link.txt。
然後在link.txt文件中,加入以下三行文字:
path=emf
path=gef
path=VE
注意:這里用的是相對路徑,也可以把EMF、GEF、VE解壓縮到其它地方,再用絕對路徑即可。
再注意:絕對路徑是用 「/」 或者 「\\」 分隔,而不是「\」
補充知識:為什麼ve需要emf和gef:
Visual Editor 所利用的最為明顯的工具是 GEF,即圖形化編輯框架(Graphical Editing
Framework)。GEF 建立於本地 Eclipse 圖形化工具集 SWT
之上,以使得開發一個圖形化編輯器或者所見即所得文本編輯器更為容易。如果您熟悉 SWT (或者
AWT/Swing,在這方面它們是類似的)中的圖形原語,那麼您會知道繪制和處理任意的形狀(比如矩形、箭頭和橢圓)是比較困難的,更不用說管理它們之間的關系以及它們所代表的數據模型了。
GEF 被劃分為兩個部分:第一部分是 Draw2D 插件,這是一個輕量級的繪圖和呈現包,用於幫助您繪制圖形。第二部分是 GEF 插件,除了其他工具以外,這一部分中還增加了選擇和創建工具、工具選項板,以及用於在數據模型和視圖之間進行映射的控制器框架。
GEF
是一個模型無關的框架,但是作為 Visual Editor (以及其他生成代碼的圖形化工具)的一部分,它在後台使用 Eclipse
建模框架(Eclipse Modeling Framework, EMF),以在模型、Java 類和圖形化表示之間進行映射,其中模型是使用
XML 元數據交換(XML Metadata Interchange, XMI)在內部存儲的。EMF
的重要特性之一是它確保所有這些映射都是一對一的;所以盡管 XMI
可以被認為是模型的標准表示,但是在代碼和圖形之間來回切換並不會丟失任何信息。這就是為什麼 Visual Editor
只需要保存模型的一種表示(即 Java 源代碼),以及開發人員可以自由地在圖形化編輯器之外編輯該源代碼的原因。
4、安裝完畢,再次運行Eclipse,它啟動時會自動查找links目錄下所有的文本文件,並載入其中path指向的所有插件,這里當然包括VE。
A、如果不能確定是否已經載入,可選擇菜單Help->Software Updates->Manage Configuration,打開Proct Configuration窗體,在其左邊的樹形欄里,可以看到已載入的插件。
B、如果載入沒有成功,可以試試用Eclipse -clear來運行程序。
C、如果載入仍沒有成功,可以試試刪除C:\eclipse\configuration下的內容,僅保留config.ini文件。然後再用Eclipse來運行程序。
================================================================
啟動eclipse平台。剛開始,你可能覺得eclipse並沒有什麼變化。先別急,請新建一個項目,點擊"文件"菜單下的"新建"子菜單,選擇並建立一個新的"java項目"。然後在工具欄上的"新建Java類" 圖標上,點擊右邊的小箭頭,將展開如下圖的菜單:
在此菜單上,多了一個"Visual Calss"的子菜單,這就是進入Visual Editor的入口之一。點擊"Visual Class",就會彈出創建GUI程序的對話框,選擇完畢後,就會進入可視化編輯畫面:
用VE寫個Hello:
1、新建一個項目;
File->New->Project...,選擇「Java Project」,然後Next,輸入一個項目名字:Hello,其它全部默認,最後回車,或者點擊「Finish」完成。
2、設置SWT庫;
A、選擇項目Hello,右鍵菜單,打開Properties對話框。
B、選擇左邊樹形中的Java Build Path,在其設置頁中,選擇Libraries頁,點擊「Add Library...」;
C、在打開的Add Library對話框里,選擇Standard Widget Toolkit(SWT),Next;
D、在打開的SWT Library Options對話框中,勾選上「Include support for JFace library」,Finish即可。
E、回到Properties對話框,OK即可。
3、新建Hellworld.java文件;
A、選擇項目Hello,右鍵菜單,New->Other...(或者點擊工具欄里新建圖標),打開Select a wizard對話框,選擇Java/Visual Class,Next;
B、在打開的Java Visual Class對話框中,
在Package里,輸入:com.cnblogs.pan;
在Name里,輸入:Helloworld;
在Style里,選擇SWT/Shell;
勾選上public static void main(String[] args);
最後Finish。
4、到了這一步,應該就可以看到窗體了,那些控制項都在Palette里,點開就能看到了。
A、在窗體上右擊,選擇Set Layout,再選擇null;(此處為個人習慣)
B、從Palette里,選中一個Button,並在窗體任意位置畫一個Button,在下面的Properties窗口裡,設置其text為ClickMe;
C、選中該按鈕,右擊選擇Events->Add Event,在打開的對話框中,選擇左邊的widgetSelected,Finish。
D、這時,游標會自動定位到程序相應的位置,我們在程序里加入下面語句:
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
System.out.println("widgetSelected()");
MessageDialog.openInformation(null, "Hello", "Hello World!");//加入這條語句
}
E、保存程序,點擊菜單Run->Run As->Java Application,呵呵,跟全世界打個招呼吧!
⑵ java設計一個圖形用戶界面。
//用戶界面基本內容都包含,界面不是很美觀
//創建一個form表單 method就是你是以什麼方式提交的
<form action="demo01.html" method="get">
用戶名:<input type="text" name="input1" id="id1" /> <br />
密碼 : <input type="password" name="input2" /> <br />
性別: <input type="radio" name="sex" value="nv" /> 女
<input type="radio" name="sex" value="nan" checked="checked"/>男 <br />
愛好: <input type="checkbox" name="hobby1" value="lol" /> LOL
<input type="checkbox" name="hobby2" value="lq" /> 籃球
<input type="checkbox" name="3" value="zq" /> 足球
<input type="checkbox" name="hobby4" value="code" /> 寫代碼 <br />
<!--<input type="button" name="btn" value="按鈕"/>-->
地址: <select name="address" >
<option>黑龍江</option>
<option>吉林</option>
<option selected="selected">遼寧</option>
</select>
<input type="hidden" name="hidden" value="cardpassword" /><br />
上傳頭像:<input type="file" name="upload" /> <br />
<!--<input type="submit" value="提交" />-->
備註:<textarea class="" rows="20px" cols="30px"></textarea> <br />
<input type="image" src="img.jpg" />
<input type="reset" id="ID" value="重置" />
</form>
⑶ java編寫一個應用程序,其功能為:顯示一個圖形框架界面,在其圖形框架上擺放三個按鈕。三個按鈕的標
參考代碼和注釋如下
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//本類繼承自JFrame,實現了er介面
{
JButtonjb1,jb2,jb3;
//構造方法:組件的初始化,排版,窗口的設置
publicButtonFrame(){
jb1=newJButton("test1");
jb1.addActionListener(this);
jb2=newJButton("test2");
jb2.addActionListener(this);
jb3=newJButton("test3");
jb3.addActionListener(this);
add(jb1);
add(jb2);
add(jb3);
setLayout(newFlowLayout());
setTitle("窗口");//窗口標題
setSize(280,220);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//當窗口關閉時,程序結束
}
//處理按鈕點擊事件
publicvoidactionPerformed(ActionEvente){
System.out.println("Button"+e.getActionCommand());
//比較啰嗦的寫法
//JButtonjbTemp=(JButton)e.getSource();
//if(jb1==jbTemp){
//System.out.println("Buttontest1");
//}elseif(jb2==jbTemp){
//System.out.println("Buttontest2");
//}elseif(jb3==jbTemp){
//System.out.println("Buttontest3");
//}
}
publicstaticvoidmain(String[]args){
newButtonFrame().setVisible(true);//實例化窗口並可見
}
}
效果圖
⑷ java圖形化界面問題
main()方法名字錯了 主函數你寫成 mian了
jframe.show()已經不建議使用了最好用 jframe.setVisible(true);
另外最好寫上jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
否則你的內存會被逐漸吃光
⑸ java 圖形 框架
Jgraph http://www.jgraph.com/ 是一個開源的,兼容Swing的基於體系結構圖形組件,具有以下特點:
1) 完全Swing兼容;
2) 簡單、高效的設計;
3) 時間效率高;
4) 100 %純Java;
jGraph簡介
jGraph具有相當高的交互性和自動化,是一套為圖定做的組件。其主要用途是在一些需要表示圖結構的應用中,比如流程圖、UML、交通線路、網路等等。
jGraph在本文撰寫時版本為5.8.0.0,可以在鏈接出找到jGraph的主頁。
jGraph主要包括以下一些產品:
JGraph - The Java Open Source Graph Drawing Component ( 有Open Source )
JGraph Layout Pro - The Java Graph Layout Solution
JGraphpad Pro Diagram Editor Framework
MxGraph Thin Client - JGraph in a browser!
咱們只是學習嘛,當然只用jGraph咯。jGraph Layout Pro是一個對圖進行布局的軟體,但是目前要收費的,jGraph對圖的操作包括:圖顯示、圖交互、圖布局、圖分析等。
JGraph 的基本SWING 組件如下:
org.jgraph Basic JGraph 類
org.jgraph.event Graph 事件模型
org.jgraph.graph Graph 結構及結點
org.jgraph.plaf Graph UI 委託組件
org.jgraph.util 常用的工具類
補充一下,與jGraph類似的可用於繪圖的還有eclipse的GEF。
jGraph模型
一張圖——JGraph 類 的主要結構:
JGraph extends JComponent {
org.jgraph.graph.GraphModel model; (DefaultGraphModel)
org.jgraph.plaf.GraphUI ui; (BasicGraphUI)
org.jgraph.graph.GraphLayoutCache cache;
}
JGraph 除了SWING的MVC結構,即引用了MODEL和UI外,他還保持著一個奇怪的應用GraphLayoutCache。 GraphLayoutCache 可以被看作是MODEL的一個擴展,它的作用是保證圖中各結點的狀態以及一些外觀等。因為圖的復雜性,使用一個GraphLayoutCache 可以用來處理這些復雜問題。
配置JGraph可以使用一系列的set方法,有許多很有用的功能可以開關。
圖的邏輯結構——GraphModel 類:
滿足MVC的要求,GraphModel保存著所有的圖中的對象,它的默認實現DefaultGraphModel能夠滿足一般的需求。
GraphModel包含三個基本操作:insert() , edit() , remove() 。這些操作會起到與GraphLayoutCache相同的效果,但與GraphLayoutCache略微不同的是它的參數比較多,乍看下去比較麻煩。 其實GraphModel所要求的只是結點的邏輯結構,對於結點的細節它並不關心。所以可以在初始化圖時使用GraphModel,不要常常用它的方法來 對細節做修改,這既不方便,也沒必要。
另外,就是GraphModel提供了許多get方法,可以很方便檢索相應的結點。
Cells
JGraph 的單位(Cells) 有三種:Vertex、 Edge、 Port。
Vertex 可以攜帶對象,由於JGraph是只負責表示的,並不真正負責數據的操作。那麼在圖形和數據間就需要一個使者,這就是Vertex ,Vertex 可以是文字、圖形等對象。
Port 是一般比較陌生的單位,在圖的演算法中並不設計Port,但在圖形表示中它十分有用。如同它的名字,他是Vertex上的一個埠,可以通過埠連接其他Vertex,而在JGraph中Port還可以用於改變Edge的形狀等等。
Edge 與圖演算法中的邊也有一點不同,Edge 是只能連接Port而不是Vertex的。這樣,因為多了Port單元,使得Edge更加靈活、更加豐富了。
默認單元——DefaultCell:
它是DefaultEdge和DefaultPort的父類,又是DefaultMutableTreeNode的子類,其地位可以相當於Vertex。 一個DefaultCell可以攜帶一個UserObject。每個DefaultCell還有一個AttributeMap,負責它的屬性(顏色、大小 等等)。用一套set方法可以修改AttributeMap。
邊和埠單元——Edge、Port:
除了繼承DefaultCell,Edge、Port還有一些獨有的方法。
Edge有getSource() 和 getTarget() 方法,用以獲得邊的兩端的對象(一般為Port)。還一個路由類,定義了一些路由方法。
Port 主要任務是承載Edge,所以有一些關於獲得Edge的方法。另外,Port還定義了獲得錨(比如一個Vertex中包含一個Port)的方法。
Cell的處理:
每個Cell包括Cell Object、Cell Renderer、Cell Editor、Cell Handle。其中Renderer負責Cell的表示,包括形狀等等。Editor 做Cell的修改用,當雙擊Cell後則調用Editor來編輯Cell。以上都是類似與JTable 和 JTree的。
Handle 是SWING的組件中沒有的,它的任務是處理Cell的大小與移動。可以重寫paint()方法來指定經過滑鼠拖動所導致的Cell大小和位置變化。
對於這些單元的屬性的控制,可以仔細看看GraphConstants這個類的set方法,基本上所有的屬性都是用這個類的set修改的。
二、JGraph設計
1) MVC
Swing是Java(Sun)提供的UI標准實現之一,Swing基於AWT(Abstract Windowing Toolkit)。JGraph完全兼容Swing,它的實現仍然基於MVC體系結構。
JGraph MVC
View:
JGraph不包含實際的數據,它提供了數據的視;JGraph對象畫圖的機制是:
將圖元定義為一個一個的 cell,每個cell可以是一個頂點(vertex)、邊(edge)或者節點(port)中的一種。頂點可以有鄰接的頂點,他們通過邊相聯系,邊聯接 的兩個端點稱為目標和源,每個目標或者源是一個節點。節點是頂點的孩子。每個cell都可以有自己的孩子。
每個cell的外觀由相應的屬性定義,屬性序列是指一系列的鍵-值對,他們以Map形式組織,例如:
Map cellAttrib = new Hashtable();
// Set bounds
Rectangle2D helloBounds = new Rectangle2D.Double(20, 20, 40, 20);
GraphConstants.setBounds(cellAttrib, helloBounds);
// Set black border
GraphConstants.setBorderColor(cellAttrib, Color.black);
一個cell有類似這樣一個cellAttrib的Map,來定義其外觀。
外觀可以指定諸如一條邊的箭頭樣式等屬性。
Model:
數據對象可以看成是JGraph中兩個獨立結構 的鏈接點:grahp結構和group結構。Graph結構基於圖論中的頂點、邊定義。Group結構是cell的composition結構。 Graph結構中getSource()和getTarget()方法,獲得源和目標節點。而在group中通過getChild(), getParent()來獲得cell的組成結構。
2) 低層基於圖論邏輯
即:一個圖G包含一個非空的元 素集V(G)和一個E(G),其中,E(G)是V(G)中兩個無序元素組成的二元組。V(G)稱為圖G頂點的集合,如果任意集合V(G)中的頂點x/y, (x,y)在E(G)中,邊(x,y)可能以連接頂點x和y的邊(弧)所代表,X與y就被稱為鄰接的,否則x與y不鄰接。
⑹ Java中建立圖形界面的一般步驟(模式)是什麼
import java.swing.*;import java.awt.*;import java.awt.event.*; //圖形類導入 public class 類名{ public class 類名 extends JFrame implements ActionListener{ //監聽 JPanel jp = new JPanel(); //創建雙緩沖和流布局 JTextField txtfile=new JTextField(10); //單行文本編輯 JLabel jb = new JLable(); //用於短文本字元串或圖像或二者的顯示區 public 類名() { }//構造函數 public void actionPerformed(ActionEvent e) { } } public static void main(String args[]) { new 類名(); }//實現} awt和swing 的類很多 其他的你自己查查API 吧,給你一個簡單的框架
⑺ java圖形界面初學者提問 swing atm(大概是這個名字) Javafx的區別是什麼
AWT ,SWING , JavaFX 都是java推出的圖形界面框架.
簡單的描述三者的區別如下:
awt 組件較少, 運行時佔用系統資源較少, 適合嵌入式平台等
swing組件略多,運行時佔用系統資源較多, 有較多的技術參考資料, 適合PC等
javaFX 組件豐富. 支持3D ,動畫, 特效, 多媒體, 也支持html5 ,方便的屬性綁定,UI層和事件層分離 ,是更加現代化的圖形界面框架.但是資料教材有點少
所以寫PC上的java圖形界面一般推薦使用swing或JavaFX
⑻ java圖形界面的布局
沒用過SWT的人路抄過,提供一個SWING:
窗口用JFrame(frame),布局為BorderLayout.
頂部為JLabel(labelTop),帶圖片和文字,用frame.add(labelTop, BorderLayout.NORTH)加入
左面為JPanel(panelLeft),布局為BoxLayout,參數Y_AXIS.需要在創建JPanel時設置Layout為NULL,然後再創建BoxLayout時需要把已經建立的panelLeft作為參數傳進去,然後再設置panelLeft的Layout為那個BoxLayout。用frame.add(panelLeft, BorderLayout.WEST)加入
中間為一堆不同功能的JPanel,布局根據功能而定了,在點擊按鈕時,移除frame此時中間的panel(記錄在一個自己的變數panelCenter里),然後加入按鈕對應的panel,再把加入的panel存入變數panelCenter.
⑼ java怎麼實現圖形化界面
java圖形化界面還是有很多內容要學習的,可以參考 如下實例:
publicclassTestextendsJFrame{
MyPanelmp=null;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Testjf=newTest();
}
publicTest(){
mp=newMyPanel();
this.add(mp);
//設置標題
this.setTitle("繪圖");
//設置窗體大小
this.setSize(400,300);
//設置窗體的位置
this.setLocation(100,100);
//限制窗體的大小
this.setResizable(false);
//關閉窗體時,同時退出java虛擬機
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//顯示窗體
this.setVisible(true);
}
}
//定義一個MyPanel(我自己的面板,用於繪圖和實現繪圖區域)
classMyPanelextendsJPanel
{
//覆蓋JPanel的paint方法
//Graphics是繪圖的重要類,可以把它理解成一隻畫筆
publicvoidpaint(Graphicsg)
{
//1。調用父類函數完成初始化
super.paint(g);
////畫圓
//g.drawOval(100,100,20,20);
////畫直線
//g.drawLine(50,150,150,200);
////畫矩形邊框
//g.drawRect(150,150,30,40);
//
////設置顏色。默認為黑色
//g.setColor(Color.blue);
////填充矩形
//g.fillRect(10,10,20,30);
//畫弧形
g.drawArc(200,10,100,150,120,-80);
//在面板上畫圖片
Imageim=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("圖片路徑"));
//顯示圖片
g.drawImage(im,10,10,200,180,this);
//畫字
g.setColor(Color.red);
g.setFont(newFont("華文彩雲",Font.BOLD,20));
g.drawString("要寫的字",80,220);
}
}
⑽ java 什麼叫MVC框架
MVC是一種框架。它並不屬於任何一種語言。
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。