Java是一種可以撰寫跨平台應用軟體的物件導向的程式設計語言。使用Java的優勢在於網頁應用方面,但Java也提供了強大的用於開發桌面程式的API,它們包含在javax.swing包中.使用這個包可以編寫簡單的Java桌面應用程式(視窗程式).
Java的javax.swing套件提供了許多用來設計GUI的元件類別,在學習GUI程式設計時,需要掌握兩個概念:容器類別(Container)和元件類別(Component),以下是GUI程式設計中經常提到的基本知識點.
Java把Component類別的子類別或間接子類別創建的物件稱為一個元件.
Java把Container的子類別或間接子類別建立的物件稱為一個容器.
可以將元件新增到容器中.Container類別提供了一個public方法add(),一個容器可以呼叫這個方法將元件加入到該容器中.
容器呼叫removeAll()方法可以移除掉容器中的全部元件,呼叫remove(Component c)方法可以移除掉容器總參數c指定的元件.
容器本身也是一個元件,因此可以把一個容器加入到另一個容器中實作容器的巢狀.
每當容器新增新的元件或移除元件時,應當讓容器呼叫validate方法,以確保容器中的元件能正確顯示出來.
接下來用Java寫一個簡單的桌面程式。
一個Java的應用程式需要使用JFrame類別的實例來提供一個底層容器和作業系統進行交互,當需要一個視窗時,使用JFrame或其子類別建立一個物件。視窗也是一個容器,可以向視窗添加元件。需要注意的是,視窗預設被系統加入到顯示器螢幕上,一次不允許講一個視窗添加到另一個容器中。
package gui; import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.InputEvent; public class Text { public static void main(String[] args) { JFrame a=new JFrame("浏览器");//顶层容器 JMenuBar b=new JMenuBar();//菜单条 JMenu c=new JMenu("文件A");//菜单 c.setMnemonic('A'); //c.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK)); JMenu d=new JMenu("编辑B");//菜单 d.setMnemonic('B'); //d.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK)); JMenu e=new JMenu("查看C");//菜单 c.setMnemonic('C'); //e.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK)); JMenuItem f=new JMenuItem("保存");//菜单项 f.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,InputEvent.CTRL_MASK)); JMenu g=new JMenu("打开");//子菜单 //g.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK)); JMenuItem h=new JMenuItem("打开x");//菜单项 h.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK)); JMenuItem i=new JMenuItem("打开y");//菜单项 i.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK)); JMenuItem j=new JMenuItem("复制");//菜单项 j.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK)); JMenuItem k=new JMenuItem("停止");//菜单项 k.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,InputEvent.CTRL_MASK)); JMenuItem l=new JMenuItem("刷新");//菜单项 l.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK)); g.add(h); g.add(i); c.add(g); c.add(f); d.add(j); e.add(k); e.add(l); b.add(c); b.add(d); b.add(e); a.setJMenuBar(b); //将菜单条加入窗口 a.setBounds(260,100,188,108); a.setVisible(true); a.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } }
以上是用java可以寫視窗程式麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!