java圖形化界面
㈠ 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中,設計圖形用戶界面需要經歷哪幾個基本步驟
1, 分析業務需求, 理順業務邏輯
2, 根據業務需要考慮使用何種容器(JFrame ,Frame ,JWindow..) 需要的數量.
3, 每個容器(窗口)使用組件
4.組件使用何種布局方式(邊界布局,絕對布局,網格布局..),排列在容器(窗口)中
5.組件中需要響應那些事件, 把事件響應代碼寫好,然後綁定到組件上(addListener...)
6.調試,測試
㈢ 怎樣用java編寫圖形界面的Application程序
java編寫圖形界面需要用到swing等組件,可以在eclipse中安裝windowbuilder來開發窗體,自動生成窗體代碼,然後自己再根據需要修改,如:
package mainFrame;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.;
import javax.swing.border.EmptyBorder;
public class Mian_login extends JFrame {
private JPanel contentPane;
private JTextField text_LoginName;
private JPasswordField Login_password;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
Mian_login frame = new Mian_login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Mian_login() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 200, 443, 300);
setResizable(false);
setTitle("登 錄");
/*獲取系統按鈕樣式*/
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lookAndFeel);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch ( e1) {
e1.printStackTrace();
}
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setOpaque(false);
panel.setBounds(0, 0, 434, 272);
contentPane.add(panel);
panel.setLayout(null);
JButton btn_Login = new JButton("u767Bu5F55");
btn_Login.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
});
btn_Login.setBounds(88, 195, 70, 23);
panel.add(btn_Login);
JButton btn_cancel = new JButton("u53D6u6D88");
btn_cancel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
dispose();
}
});
btn_cancel.setBounds(268, 195, 70, 23);
panel.add(btn_cancel);
JLabel lblNewLabel_name = new JLabel("u7528u6237u540D");
lblNewLabel_name.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_name.setOpaque(true);
lblNewLabel_name.setBounds(88, 48, 70, 23);
panel.add(lblNewLabel_name);
JLabel lblNewLabel_passwd = new JLabel("u5BC6u7801");
lblNewLabel_passwd.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_passwd.setOpaque(true);
lblNewLabel_passwd.setBounds(88, 102, 70, 23);
panel.add(lblNewLabel_passwd);
JCheckBox chckbx_remember = new JCheckBox("u8BB0u4F4Fu5BC6u7801");
chckbx_remember.setBounds(102, 150, 84, 23);
panel.add(chckbx_remember);
text_LoginName = new JTextField();
text_LoginName.setBounds(182, 48, 156, 23);
panel.add(text_LoginName);
text_LoginName.setColumns(10);
Login_password = new JPasswordField();
Login_password.setBounds(182, 102, 156, 23);
panel.add(Login_password);
JCheckBox chckbx_AutoLogin = new JCheckBox("u81EAu52A8u767Bu5F55");
chckbx_AutoLogin.setBounds(233, 150, 84, 23);
panel.add(chckbx_AutoLogin);
JLabel Label_background = new JLabel("");
Label_background.setIcon(new ImageIcon("E:\JAVA_workplace\0002-u754Cu9762u8BBEu8BA1\images\background3.jpg"));
Label_background.setBounds(0, 0, 437, 272);
contentPane.add(Label_background);
}
}
㈣ Java編寫一個圖形界面
rcp(SWT/JFace)開發的要不要,同樣是java的
㈤ java如何做出圖形用戶界面 實例
首先要應用GUI相關的包比如import java.awt.*;import javax.swing.*;
給你個例子吧
public class Test extends JFrame{
MyPanel mp=null;
public static void main(String[] args){
// TODO Auto-generated method stub
Test jf= new Test();
}
public Test(){
mp=new MyPanel();
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(我自己的面板,用於繪圖和實現繪圖區域)
class MyPanel extends JPanel
{
//覆蓋JPanel的paint方法
//Graphics是繪圖的重要類,可以把它理解成一隻畫筆
public void paint(Graphics g)
{
//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);
//在面板上畫圖片
Image im=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("圖片路徑"));
//顯示圖片
g.drawImage(im, 10, 10,200,180,this);
//畫字
g.setColor(Color.red);
g.setFont(new Font("華文彩雲",Font.BOLD,20));
g.drawString("要寫的字", 80,220);
}
}
好好學,以後相互交流
㈥ java設計和實現圖形用戶界面的主要工作有哪些
步驟如下,都是我自己整理的:一維數組:1.聲明一維數組 在Java語言中,數組是一種引用類型,數組名如同對象名一樣,是一種引用。聲明數組是聲明一個標識符能引用數組,需要指定數組元素的類型。聲明一維數組有兩種格式: 數組元素類型 數組名[]; 或者 數組元素類型[] 數組名; Student stu[];//與Student[] stu; 等價2.創建一維數組 創建一維數組就是為數組分配存儲空間,需指定數組長度。數組創建後,數組名就標識用於存儲數組元素的存儲空間。創建一維數組的方法有3種: (1) 先聲明後創建 創建數組代碼的一般形式為:數組名字 = new 數組元素類型[元素個數]; 例如,代碼: int intArray []; intArray = new int[5]; (2) 聲明時創建 把聲明數組和創建數組的代碼結合在一起。例如: int intArray[] = new int[5]; (3) 直接賦值創建 在聲明數組時,直接給出數組的初值。例如: int [] intArray = {1,2,3,4,5}; 直接賦值創建數組的方法也稱為數組初始化。在數組初始化的代碼中,花括弧{}內初值間的分隔符是逗號」,」。系統根據數組初始化時提供的初值個數確定數組的元素個數,然後為數組分配空間,並為數組各元素依次賦初值。上述代碼相當於: int intArray[] = new int[5]; intArray[0]=1; intArray[1]=2; intArray[2]=3;intArray[3]=4; intArray[4]=5; 前兩種方法創建數組時,系統會給數組元素提供默認初始值:數值型數組元素的默認值是0;char類型數組元素的默認值是全0代碼字元;布爾類型數組元素的默認值是false。在Java中,所有數組都有一個成員length,程序可以訪問它,獲得數組的元素個數,但不能改變它。例如,按照前面數組intArray的定義,intArray.length的值是5。 3.引用一維數組元素 引用一維數組元素代碼的一般形式為 數組名[下標] 數組下標可以是整型常數或者整型表達式。數組下標范圍是0到數組名.length-1。為了確保程序安全性,Java運行系統對數組下標自動進行范圍越界檢查。 4.數組是一種引用類型 數組也是一種引用類型,一個數組名在不同時間可引用不同數組。代碼: myArray =firstArray; myArray =secondArray;4.1.2 多維數組 數組元素有多個下標的數組就是多維數組。多維數組是一種數組的數組,例如,當數組的元素又是一維數組時,就是一個二維數組。在Java程序中,可以有三維數組,或四維數組等。以下以二維數組為例說明多維數組。 1. 聲明二維數組 聲明二維數組的一般形式有以下3種(類似的代碼可以聲明多維數組):類型 數組名 [ ][ ] 類型 [ ][ ] 數組名 類型 [ ] 數組名 [ ] 2. 創建二維數組 創建二維數組對象的方法有多種: (1) 直接分配(平衡二維數組——矩陣):類型 數組名[][]=new 類型[長度1][長度2] (2) 從最高維開始,分別對每一維分配不等長的空間(非平衡數組):以二維數組為例,先指定第一維,創建有指定子數組個數的二維數組後,依次對每個子數組確定元素個數,並創建子數組。例如,以下代碼創建一個二維數組a[][],它有3個子數組,第一個子數組有4個元素,第2個子數組有5個元素,第3個子數組有2個元素: int a[][] = new int[3]; a[0]=new int [4]; a[1]=new int[5]; a[2]=new int[2];(3) 直接賦值創建 聲明二維數組,同時直接給出各子數組的元素。如果子數組的元素個數不同,則創建是一個非平衡的二維數組。例如,代碼: int [][]x= {{5,6,7}, {8,9,10,11}, {2,9} }; 3. 引用二維數組 二維數組元素的引用方式是: 數組名[下標1][下標2] 下標1是第一維下標,下標2是第二維下標。 4. 使用二維數組要注意的問題 對於二維數組,要注意以下兩點: (1) 二維數組名,length和二維數組名[下標1].length的區別。二維數組名.length是二維數組的子數組個數;二 維數組名[下標1].length是指定子數組的元素個數。(2) 二維數組名[下標]是一維數組。 public class Examle3_1 { public static void main(String args[]) { boolean bTb1[][] = new boolean[4][]; for (int i = 0; i < bTb1.length; i++) { bTb1[i] = new boolean[i + 1]; for (int k = 0; k < bTb1[i].length; k++) { System.out.print(bTb1[i][k] + " "); } System.out.println("");}}}
圖形用戶界面要先加入組件到容器中,然後再給組件添加監聽器,具體如下:圖形界面設計基礎 圖形用戶界面Graphical User Interface,GUI 5.1.1AWT和Swing Swing可以看作是AWT (AbstractWindow Toolkit)的改良版,而不是代替AWT,是對AWT的提高和擴展。所以在寫GUI 程序時,Swing 和AWT 都要作用。它們共存於Java基礎類(Java Foundation Class,JFC)中。 AWT 和 Swing 都提供了構造圖形界面元素的類,它們的不同:AWT 依賴於主平台繪制用戶界面組件;而Swing 有自己的機制,在主平台提供的窗口中繪制和管理界面組件。Swing 與AWT 之間的最明顯的區別是界面組件的外觀,AWT 在不同平台上運行相同的程序,界面的外觀和風格可能會有一些差異。然而,一個基於 Swing 的應用程序可能在任何平台上都會有相同的外觀和風格。Swing 中的類是從AWT繼承的,有些Swing類直接擴展AWT中對應的類。例如JApplet、JDialog、JFrame和JWindow。使用Swing設計圖形界面,主要引入兩個包: javax.swing 包含Swing 的基本類;java.awt.event 包含與處理事件相關的介面和類。 5.1.2組件和容器 組件(component)是圖形界面的基本元素,用戶可以直接操作,例如按鈕。容器(Container)是圖形界面的的復合元素,容器可以包含組件,例如面板。Java 語言為每種組件都預定義類,程序通過它們或它們的子類創建各種組件對象,如,Swing 中預定義的按鈕類JButton是一種類,程序創建的JButton對象,或JButton子類的對象就是按鈕。Java語言也為每種容器預定義類,程序通過它們或它們的子類創建各種容器對象。例如,Swing中預定義的窗口類JFrame是一種容器類,程序創建的JFrame或JFrame子類的對象就是窗口。為了統一管理組件和容器,為所有組件類定義超類,把組件的共有操作都定義在Component類中。同樣,為所有容器類定義超類 Container 類,把容器的共有操作都定義在 Container 類中。例如,Container 類中定義了 add()方法,大多數容器都可以用add()方法向容器添加組件。Component、Container 和Graphics 類是AWT 庫中的關鍵類。為能層次地構造復雜的圖形界面,容器被當作特殊的組件,可以把容器放入另一個容器中。例如,把若干按鈕和文本框分放在兩個面板中,再把這兩個面板和另一些按鈕放入窗口中。5.1.3事件驅動程序設計基礎 1.事件、監視器和監視器注冊 圖形界面上的事件是指在某個組件上發生用戶操作。對事件作監視的對象稱為監視器,監視器提供響應事件的處理方法。要讓監視器與事件對象關聯起來需對事件對象作監視器注冊,告訴系統事件對象的監視器。 2.實現事件處理的途征 java語言編寫事件處理程序主要有兩種方案;一個是程序重設handleEvent(Eventevt),採用這個方案的程序工作量稍大一些。另一個方案是程序實現一些系統設定的介面。java按事件類型提供多種介面,作為監視器對象的類需要實現相應的介面,即實現響應事件的方法。當事件發生時,系統內設的handleEvent(Event evt)方法就自動調用監視器的類實現的響應事件的方法。java.awt.event 包中用來檢測並對事件做出反應的模型包括以下三個組成元素: (1)源對象:事件「發生」這個組件上,它與一組「偵聽」該事件的對象保持著聯系。(2)監視器對象:一個實現預定義的介面的類的一個對象,該對象的類要提供對發生的事件作處理的方法。(3)事件對象:它包含描述當事件發生時從源傳遞給監視器的特定事件的信息。一個事件驅動程序要做的工作除創建源對象和監視器對象之外,還必須安排監視器了解源對象,或向源對象注冊監視器。每個源對象有一個已注冊的監視器列表,提供一個方法能向該列表添加監視器對象。只有在源對象注冊了監視器之後,系統才會將源對象上發生的事件通知監視器對象。3.事件類型和監視器介面 在 java 語言中,為了便於系統管理事件,也為了便於程序作監視器注冊,系統將事件分類,稱為事件類型。系統為每個事件類型提供一個介面。要作為監視器對象的類必須實現相應的介面,提供介面規定的響應事件的方法。再以程序響應按鈕事件為例,JButton類對象button可以是一個事件的激發者。當用戶點擊界面中與button對應的按鈕時,button對象就會產生一個ActionEvent類型的事件。如果監視器對象是obj,對象obj的類是Obj,則類Obj必須實現AWT中的ActionListener介面,實現監視按鈕事件的actionPerformed方法。button對象須用addActionListener方法注冊它的監視器obj。程序運行時,當用戶點擊 button 對象對應的按鈕時,系統就將一個 ActionEvent 對象從事件激發對象傳遞到監視器。ActionEvent對象包含的信息包括事件發生在哪一個按鈕,以及有關該事件的其他信息。