正文

進銷存管理系統(tǒng)(7)

Java項目開發(fā)案例全程實錄(第2版) 作者:明日科技


1.5 主窗體設計

主窗體界面也是該系統(tǒng)的歡迎界面。應用程序的主窗體必須設計層次清晰的系統(tǒng)菜單和工具欄,其中系統(tǒng)菜單包含系統(tǒng)中所有功能的菜單項,而工具欄主要提供常用功能的快捷訪問按鈕。企業(yè)進銷存管理系統(tǒng)采用導航面板,綜合了系統(tǒng)菜單和工具欄的優(yōu)點,而且其界面更加美觀,操作更快捷。主窗體的運行效果如圖1.20所示。

1.5.1  創(chuàng)建主窗體

創(chuàng)建主窗體的步驟如下:

(1)創(chuàng)建JXCFrame類,在類中創(chuàng)建并初始化窗體對象,為窗體添加桌面面板,并設置背景圖片。關鍵代碼如下:

例程01  代碼位置:光盤\TM\01\JXCManager\src\com\lzw\JXCFrame.java

private JDesktopPane desktopPane;

private JFrame frame;

private JLabel backLabel;

private Preferences preferences;

//創(chuàng)建窗體的Map類型集合對象

private Map<String, JInternalFrame> ifs = new HashMap<String, JInternalFrame>();

public JXCFrame() {

frame = new JFrame("企業(yè)進銷存管理系統(tǒng)"); //創(chuàng)建窗體對象

frame.addComponentListener(new FrameListener()); //添加窗體事件監(jiān)聽器

frame.getContentPane().setLayout(new BorderLayout()); //設置布局管理器

frame.setBounds(100, 100, 800, 600); //設置窗體位置和大小

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設置窗體默認的關閉方式

backLabel = new JLabel(); //背景標簽

backLabel.setVerticalAlignment(SwingConstants.TOP); //設置背景標簽垂直對齊方式

backLabel.setHorizontalAlignment(SwingConstants.CENTER); //設置背景標簽水平對齊方式

updateBackImage();  //調(diào)用初始化背景標簽的方法

desktopPane = new JDesktopPane(); //創(chuàng)建桌面面板

desktopPane.add(backLabel, new Integer(Integer.MIN_VALUE)); //將背景標簽添加到桌面面板中

frame.getContentPane().add(desktopPane); //添加桌面面板到窗體中

JTabbedPane navigationPanel = createNavigationPanel();  //創(chuàng)建導航面板

frame.getContentPane().add(navigationPanel, BorderLayout.NORTH); //添加導航面板到窗體中

frame.setVisible(true); //顯示窗體

}

(2)編寫updateBackImage()方法,在該方法中初始化背景標簽,背景標簽使用HTML超文本語言設置了主窗體的背景圖片,該圖片將隨主窗體的大小自動縮放。關鍵代碼如下:

例程02  代碼位置:光盤\TM\01\JXCManager\src\com\lzw\JXCFrame.java

private void updateBackImage() {

if (backLabel != null) {

int backw = JXCFrame.this.frame.getWidth();

int backh = frame.getHeight();

backLabel.setSize(backw, backh); //初始化背景標簽的大小

backLabel.setText("<html><body><image width='" + backw

+ "' height='" + (backh - 110) + "' src="

+ JXCFrame.this.getClass().getResource("welcome.jpg")

+ "'></img></body></html>"); //設置背景標簽的圖像

}

}

(3)在類的靜態(tài)代碼段中設置進銷存管理系統(tǒng)的外觀樣式。Swing支持跨平臺特性,它可以在不同的操作系統(tǒng)中保持一致的外觀風格,但是本系統(tǒng)使用UIManager類的setLookAndFeel()方法設置程序界面使用本地外觀,這樣可以使程序更像本地應用程序。關鍵代碼如下:

例程03  代碼位置:光盤\TM\01\JXCManager\src\com\lzw\JXCFrame.java

static {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch (Exception e) {

e.printStackTrace();

}

}

(4)編寫主窗體的main()入口方法,在該方法中創(chuàng)建登錄窗體對象,登錄窗體會驗證登錄信息,并顯示主窗體界面。關鍵代碼如下:

例程04  代碼位置:光盤\TM\01\JXCManager\src\com\lzw\JXCFrame.java

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

new Login();

}

});

}

1.5.2  創(chuàng)建導航面板

創(chuàng)建導航面板的步驟如下:

(1)在JXCFrame類中編寫createNavigationPanel()方法,在該方法中創(chuàng)建JTabbedPane選項卡面板對象;為突出選項卡的立體效果,設置其使用BevelBorder邊框效果;然后依次創(chuàng)建“基礎信息管理”、“庫存管理”、“銷售管理”、“查詢統(tǒng)計”、“進貨管理”和“系統(tǒng)管理”選項卡。關鍵代碼如下:

例程05  代碼位置:光盤\TM\01\JXCManager\src\com\lzw\JXCFrame.java

private JTabbedPane createNavigationPanel() { //創(chuàng)建導航面板的方法

JTabbedPane tabbedPane = new JTabbedPane();

tabbedPane.setFocusable(false);

tabbedPane.setBackground(new Color(211, 230, 192));

tabbedPane.setBorder(new BevelBorder(BevelBorder.RAISED));

JPanel baseManagePanel = new JPanel();  //“基礎信息管理”面板

baseManagePanel.setBackground(new Color(215, 223, 194));

baseManagePanel.setLayout(new BoxLayout(baseManagePanel, BoxLayout.X_AXIS));

baseManagePanel.add(createFrameButton("客戶信息管理", "KeHuGuanLi"));

baseManagePanel.add(createFrameButton("商品信息管理", "ShangPinGuanLi"));

baseManagePanel.add(createFrameButton("供應商信息管理", "GysGuanLi"));

JPanel depotManagePanel = new JPanel();  //“庫存管理”面板

depotManagePanel.setBackground(new Color(215, 223, 194));

depotManagePanel.setLayout(new BoxLayout(depotManagePanel, BoxLayout.X_AXIS));

depotManagePanel.add(createFrameButton("庫存盤點", "KuCunPanDian"));

depotManagePanel.add(createFrameButton("價格調(diào)整", "JiaGeTiaoZheng"));

JPanel sellManagePanel = new JPanel(); //“銷售管理”面板

sellManagePanel.setBackground(new Color(215, 223, 194));

sellManagePanel.setLayout(new BoxLayout(sellManagePanel, BoxLayout.X_AXIS));

sellManagePanel.add(createFrameButton("銷售單", "XiaoShouDan"));

sellManagePanel.add(createFrameButton("銷售退貨", "XiaoShouTuiHuo"));

JPanel searchStatisticPanel = new JPanel(); //“查詢統(tǒng)計”面板

searchStatisticPanel.setBounds(0, 0, 600, 41);

searchStatisticPanel.setName("searchStatisticPanel");

searchStatisticPanel.setBackground(new Color(215, 223, 194));

searchStatisticPanel.setLayout(new BoxLayout(searchStatisticPanel, BoxLayout.X_AXIS));

searchStatisticPanel.add(createFrameButton("客戶信息查詢", "KeHuChaXun"));

searchStatisticPanel.add(createFrameButton("商品信息查詢", "ShangPinChaXun"));

searchStatisticPanel.add(createFrameButton("供應商信息查詢","GongYingShangChaXun"));

searchStatisticPanel.add(createFrameButton("銷售信息查詢", "XiaoShouChaXun"));

searchStatisticPanel.add(createFrameButton("銷售退貨查詢","XiaoShouTuiHuoChaXun"));

searchStatisticPanel.add(createFrameButton("入庫查詢", "RuKuChaXun"));

searchStatisticPanel.add(createFrameButton("入庫退貨查詢", "RuKuTuiHuoChaXun"));

searchStatisticPanel.add(createFrameButton("銷售排行", "XiaoShouPaiHang"));

JPanel stockManagePanel = new JPanel(); //“進貨管理”面板

stockManagePanel.setBackground(new Color(215, 223, 194));

stockManagePanel.setLayout(new BoxLayout(stockManagePanel, BoxLayout.X_AXIS));

stockManagePanel.add(createFrameButton("進貨單", "JinHuoDan"));

stockManagePanel.add(createFrameButton("進貨退貨", "JinHuoTuiHuo"));

JPanel sysManagePanel = new JPanel(); //“系統(tǒng)管理”面板

sysManagePanel.setBackground(new Color(215, 223, 194));

sysManagePanel.setLayout(new BoxLayout(sysManagePanel, BoxLayout.X_AXIS));

sysManagePanel.add(createFrameButton("操作員管理", "CzyGL"));

sysManagePanel.add(createFrameButton("更改密碼", "GengGaiMiMa"));

sysManagePanel.add(createFrameButton("權限管理", "QuanManager"));

//將所有面板添加到導航面板中

tabbedPane.addTab("   基礎信息管理   ", null, baseManagePanel, "基礎信息管理");

tabbedPane.addTab("   進貨管理   ", null, stockManagePanel, "進貨管理");

tabbedPane.addTab("   銷售管理   ", null, sellManagePanel, "銷售管理");

tabbedPane.addTab("   查詢統(tǒng)計   ", null, searchStatisticPanel, "查詢統(tǒng)計");

tabbedPane.addTab("   庫存管理   ", null, depotManagePanel, "庫存管理");

tabbedPane.addTab("   系統(tǒng)管理   ", null, sysManagePanel, "系統(tǒng)管理");

return tabbedPane;

}

 


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號