创建主窗体(转)
该链接: http://www.51cto.com/art/200807/79600.htm
创建主窗体的步骤如下:
(1)创建JXCFrame类,在类中创建并初始化窗体对象,为窗体添加桌面面板,并设置背景图片。关键代码如下:
例程01 代码位置:光盘\TM\01\JXCManager\src\com\lzw\JXCFrame.java
private JDesktopPane desktopPane; private JFrame frame; private JLabel backLabel; private Preferences preferences; //创建窗体的Map类型集合对象 private Map<String, JInternalFrame> ifs = new HashMap<String, JInternalFrame>(); public JXCFrame() { frame = new JFrame("企业进销存管理系统"); //创建窗体对象 frame.addComponentListener(new FrameListener()); //添加窗体事件监听器 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(); //调用初始化背景标签的方法 desktopPane = new JDesktopPane(); //创建桌面面板 desktopPane.add(backLabel, new Integer(Integer.MIN_VALUE)); //将背景 标签添加到桌面面板中 frame.getContentPane().add(desktopPane); //添加桌面面板到窗体中 JTabbedPane navigationPanel = createNavigationPanel(); //创建导航面板 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)在类的静态代码段中设置进销存管理系统的外观样式。Swing支持跨平台特性,它可以在不同的操作系统中保持一致的外观风格,但是本系统使用UIManager类的setLookAndFeel()方法设置程序界面使用本地外观,这样可以使程序更像本地应用程序。关键代码如下:
例程03 代码位置:光盘\TM\01\JXCManager\src\com\lzw\JXCFrame.java
static { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } } |
(4)编写主窗体的main()入口方法,在该方法中创建登录窗体对象,登录窗体会验证登录信息,并显示主窗体界面。关键代码如下:
例程04 代码位置:光盘\TM\01\JXCManager\src\com\lzw\JXCFrame.java
public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Login(); } }); } |