一个简单的桌面应用程序框架示例(Java SE9)
生活随笔
收集整理的這篇文章主要介紹了
一个简单的桌面应用程序框架示例(Java SE9)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 創建主窗體界面
package com.ys;import java.awt.Dimension; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent;import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.KeyStroke;import ys.com.internalFrame.SyssetInternalFrame;public class MainFrm extends JFrame implements ActionListener{JDesktopPane desktop;//聲明系統主菜單static final String SYS="系統";static final String STORE="倉庫管理";static final String PURCHARCE="采購管理";static final String BANFANG="板房管理";//聲明系統子菜單項//1.系統子菜單項static final String SYS_SET="系統設置";static final String SYS_UMANAGER="用戶管理";static final String SYS_EXIT="退出系統";//2.倉庫子菜單項static final String STORE_BUBAN="布板管理";static final String STORE_IN="入庫管理";static final String STORE_OUT="出庫管理";static final String STORE_ORDER="物料訂購單";static final String STORE_RETURN="物料回貨單";public MainFrm() {super("YS_Main");int inset=50;Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();setBounds(inset,inset,screenSize.width-inset*2,screenSize.height-inset*2);//創建圖形用戶界面desktop=new JDesktopPane();setContentPane(desktop);setJMenuBar(createMenuBar());//設置拖放效果 desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);}private static void createAndShowGUI() {javax.swing.JFrame.setDefaultLookAndFeelDecorated(true);MainFrm frame =new MainFrm(); //實例化主窗體界面 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true); //顯示窗體 }public static void main(String[] args) {javax.swing.SwingUtilities.invokeLater(new Runnable() {public void run() {createAndShowGUI();}});}//創建主菜單項方法createMenu()public JMenu createMenu(String name,int c,JMenuBar menuBar) {JMenu menu=new JMenu(name);menu.setMnemonic(c);menuBar.add(menu);return menu;}//創建子菜單項方法createMenuItem()public void createMenuItem(String name,int keyCode,JMenu menu,boolean sep) {JMenuItem menuItem=new JMenuItem(name);menuItem.setMnemonic(keyCode);menuItem.setAccelerator(KeyStroke.getKeyStroke(keyCode,ActionEvent.ALT_MASK));menuItem.setActionCommand(name);menuItem.addActionListener(this);menu.add(menuItem);if(sep)menu.addSeparator();//添加分割線 }//定義創建菜單欄的方法createMenuBar()protected JMenuBar createMenuBar() {JMenuBar menuBar=new JMenuBar(); //定義菜單欄工具對象并實例化//添加菜單項,并初始化菜單項JMenu menuSYS=createMenu(SYS,KeyEvent.VK_S,menuBar); JMenu menuSTORE=createMenu(STORE,KeyEvent.VK_C,menuBar);createMenu(PURCHARCE,KeyEvent.VK_P,menuBar);createMenu(BANFANG,KeyEvent.VK_B,menuBar);//添加子菜單項//1.實例化系統子菜單項createMenuItem(SYS_SET,KeyEvent.VK_0,menuSYS,false);createMenuItem(SYS_UMANAGER,KeyEvent.VK_1,menuSYS,false);createMenuItem(SYS_EXIT,KeyEvent.VK_X,menuSYS,false);//2.實例化倉庫管理子菜單項createMenuItem(STORE_BUBAN,KeyEvent.VK_B,menuSTORE,false);createMenuItem(STORE_IN,KeyEvent.VK_I,menuSTORE,false);createMenuItem(STORE_OUT,KeyEvent.VK_O,menuSTORE,true);createMenuItem(STORE_ORDER,KeyEvent.VK_D,menuSTORE,false);createMenuItem(STORE_RETURN,KeyEvent.VK_R,menuSTORE,false);return menuBar;}public void actionPerformed(ActionEvent e) {if(SYS_SET.equals(e.getActionCommand()))createSysSetFrame();if(SYS_EXIT.equals(e.getActionCommand()))quit();}protected void createSysSetFrame() {//打開用戶設置窗體SyssetInternalFrame frame = new SyssetInternalFrame();frame.setVisible(true); //necessary as of 1.3 desktop.add(frame);try {frame.setSelected(true);} catch (java.beans.PropertyVetoException e) {} }protected void quit() {System.exit(0); //退出系統 } }2. 建立一個帶有笑臉的簡單子窗體
package com.ys.internalFrame;import java.awt.Container;import javax.swing.JInternalFrame;public class SyssetInternalFrame extends JInternalFrame {static int openFrameCount = 0;static final int xOffset = 30, yOffset = 30;public SyssetInternalFrame() {super("系統設置",// + (++openFrameCount), true, //resizabletrue, //closabletrue, //maximizabletrue);//iconifiable//...Create the GUI and put it in the window...Container cp=getContentPane();FaceBean faceBean=new FaceBean();faceBean.setMouthWidth(60);faceBean.smile();//faceBean.frown(); cp.add(faceBean);//...Then set the window size or call pack...setSize(500,300);//Set the window's location.setLocation(xOffset*openFrameCount, yOffset*openFrameCount);}}3. 定義笑臉控件類
package com.ys.entity;import java.awt.*; import javax.swing.*;public class FaceBean extends JComponent {private int mMouthWidth = 90; //初始化嘴巴默認寬度private boolean mSmile = true; //默認情況顯示笑臉 @Overridepublic void paint(Graphics g) {Graphics2D g2 = (Graphics2D)g;g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);// 臉int w = getWidth();int h = getHeight();int pad = 12;int cw = w - pad * 2;int ch = h - pad * 2;g2.setColor(getBackground());g2.fillArc(pad, pad, cw, ch, 0, 360);g2.setColor(getForeground());g2.drawArc(pad, pad, cw, ch, 0, 360);// 嘴int sw = cw / 2;int sh = ch / 2;if (mSmile == true)g2.drawArc(w / 2 - sw / 2, h / 2 - sh / 2, sw, sh, 270 - mMouthWidth / 2, mMouthWidth);elseg2.drawArc(w / 2 - sw / 2, h / 2 + sh / 3, sw, sh, 90 - mMouthWidth / 2, mMouthWidth);// 眼睛int er = 4;g2.fillArc(w / 2 - cw * 1 / 8 - er / 2, h / 2 - ch / 4 - er, er, er, 0, 360);g2.fillArc(w / 2 + cw * 1 / 8 - er / 2, h / 2 - ch / 4 - er, er, er, 0, 360);}public int getMouthWidth() {return mMouthWidth;}//設置嘴巴寬度的方法public void setMouthWidth(int mw) {mMouthWidth = mw;repaint();}//顯示笑臉的方法public void smile() {mSmile = true;repaint();}//顯示苦臉的方法public void frown() {mSmile = false;repaint();} }?
轉載于:https://www.cnblogs.com/lxh168/p/8145401.html
總結
以上是生活随笔為你收集整理的一个简单的桌面应用程序框架示例(Java SE9)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv-python教程学习系列1
- 下一篇: Phaser小站