⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainwindow.java

📁 关于JAVA的代码连接数据库
💻 JAVA
字号:
package GradeManagement;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;

import java.beans.PropertyVetoException;
import java.net.URL;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.MatteBorder;


public class MainWindow extends JFrame {
   private static int WIDTH = 800;
   private static int HEIGHT = 480;

   private JMenuBar menuBar;
   private JMenu fileMenu, helpMenu;
   private JMenuItem saveMenuItem, saveAsMenuItem;

   private Action newAction, openAction,
      exitAction, aboutAction;

   private JToolBar toolBar;
   private JDesktopPane desktopPane;
   private SplashScreen splashScreen;

   public MainWindow() {
      super( "学生成绩管理系统" );
      URL url = MainWindow.class.getResource("images/icon.png");
      ImageIcon icon = new ImageIcon( url );
      setIconImage( icon.getImage() );

      showSplashScreen(); //显示欢迎屏幕
      setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE );

      desktopPane = new JDesktopPane(); // 创建JDesktopPane对象
      //设置活动的拖曳方式
      desktopPane.setDragMode( JDesktopPane.LIVE_DRAG_MODE );

      url = MainWindow.class.getResource("images/new.gif");
      Icon newIcon = new ImageIcon(url);
      newAction = new AbstractGradeAction("New", newIcon,
         "创建新的成绩簿", new Integer('N')) {
         public void actionPerformed(ActionEvent event) {
            createNewWindow();
         }
      };

      url = MainWindow.class.getResource("images/open.gif");
      Icon openIcon = new ImageIcon(url);
      openAction = new AbstractGradeAction("Open", openIcon,
         "打开成绩簿", new Integer('O')) {
         public void actionPerformed(ActionEvent event) {
            InternalWindow frame = createNewWindow();
            if (!frame.openRoster())
               frame.close();
         }
      };

      url = MainWindow.class.getResource("images/exit.gif");
      Icon exitIcon = new ImageIcon(url);
      exitAction = new AbstractGradeAction("Exit", exitIcon,
         "退出应用程序", new Integer('X')) {
         public void actionPerformed(ActionEvent event) {
            exitApplication();
         }
      };

      url = MainWindow.class.getResource("images/about.gif");
      Icon aboutIcon = new ImageIcon(url);
      aboutAction = new AbstractGradeAction("About",
         aboutIcon, "应用程序", new Integer('b')) {
         public void actionPerformed(ActionEvent event) {
            JOptionPane.showMessageDialog(MainWindow.this,
               "学生成绩管理系统V1.0.\n 版权所有 " +
               "清华大学计算机系" );
         }
      };

      fileMenu = new JMenu("File");
      fileMenu.setMnemonic('F');

      helpMenu = new JMenu("Help");
      helpMenu.setMnemonic('H');

      fileMenu.add(newAction).setIcon(null);
      fileMenu.add(openAction).setIcon(null);

      saveMenuItem = new JMenuItem("Save");
      saveAsMenuItem = new JMenuItem("Save As");

      fileMenu.add(saveMenuItem);
      fileMenu.add(saveAsMenuItem);
      fileMenu.addSeparator();
      fileMenu.add(exitAction).setIcon(null);

      helpMenu.add(aboutAction).setIcon(null);

      menuBar = new JMenuBar();
      menuBar.add(fileMenu);
      menuBar.add(helpMenu);

      setJMenuBar(menuBar);
      //创建工具条对象
      toolBar = new JToolBar();
      toolBar.setFloatable(false);

      toolBar.add(newAction);
      toolBar.add(openAction);
      toolBar.addSeparator();

      toolBar.add(exitAction);
      toolBar.addSeparator();

      toolBar.add(aboutAction);

      getContentPane().add(toolBar, BorderLayout.NORTH);
      getContentPane().add(desktopPane, BorderLayout.CENTER);

      // 注册窗口关闭事件
      addWindowListener(
         new WindowAdapter() {
            public void windowClosing(WindowEvent event) {
               exitApplication();
            }
         }
      );
     //等待欢迎屏幕消失
      while (splashScreen.isVisible()) {
         try {
            Thread.sleep(10);
         }
         // handle exception
         catch ( InterruptedException interruptedException ) {
            interruptedException.printStackTrace();
         }
      }
      setSize(WIDTH, HEIGHT);
      centerWindowOnScreen();
      setVisible(true);
      createNewWindow();
   } // 构造方法MainWindow结束

   private InternalWindow createNewWindow() {
      InternalWindow frame = new InternalWindow("学生成绩簿" ,this);
      // 添加事件监听器
      frame.addInternalFrameListener(new InternalFrameListener());
      frame.setOpaque(true);
      desktopPane.add(frame);
      frame.setVisible(true);
      try {
         frame.setSelected(true);
      } catch ( PropertyVetoException vetoException ) {
         vetoException.printStackTrace();
      }
      return frame;
   }

   // InternalFrameAdapter监听InternalFrame事件
   private class InternalFrameListener
      extends InternalFrameAdapter {
      //关闭事件处理
      public void internalFrameClosing(
         InternalFrameEvent event ) {
         InternalWindow frame =
            ( InternalWindow ) event.getSource();
         if ( frame.close() ) {
            saveMenuItem.setAction( null );
            saveAsMenuItem.setAction( null );
         }
      }// end of method: internalFrameClosing

    //当内部窗口成为活动时的事件处理
    public void internalFrameActivated(InternalFrameEvent event) {
         InternalWindow frame =(InternalWindow) event.getSource();
         saveMenuItem.setAction(frame.getSaveAction());
         saveMenuItem.setIcon(null);
         saveAsMenuItem.setAction(frame.getSaveAsAction());
         saveAsMenuItem.setIcon(null);
      } // 方法internalFrameActivated结束
   } // 类 InternalFrameListener结束

   //退出事件处理,关闭所有内部窗口并允许用户选择保存
   private void exitApplication() {
      //获取桌面窗格中的所有内部框
      JInternalFrame frames[] = desktopPane.getAllFrames();
      boolean allFramesClosed = true; //是否全部数据保存标志
      for ( int i = 0; i < frames.length; i++ ) {
         InternalWindow nextFrame =
            ( InternalWindow ) frames[ i ];
         try {
            nextFrame.setSelected( true );
         }
         catch ( PropertyVetoException vetoException ) {
            vetoException.printStackTrace();
         }
         allFramesClosed = allFramesClosed && nextFrame.close();
      }
      //全部关闭方可退出
      if (allFramesClosed)
         System.exit( 0 );
   } // 方法exitApplication结束

   // 显示欢迎界面
   public void showSplashScreen() {
      // 实例化ImageIcon对象,加载图像
      Icon logoIcon = new ImageIcon(
         getClass().getResource( "images/logo.png" ) );
      JLabel logoLabel = new JLabel( logoIcon );
      logoLabel.setBackground( Color.white );
      logoLabel.setBorder(
         new MatteBorder( 5, 5, 5, 5, Color.black ) );
      logoLabel.setOpaque( true );
      splashScreen = new SplashScreen( logoLabel );
      splashScreen.showSplash( 3000 );
   } // 方法showSplashScreen结束

   // 窗口居中
   private void centerWindowOnScreen() {
      Dimension screenDimension =
         Toolkit.getDefaultToolkit().getScreenSize(); //获取屏幕高度和宽度
      int width = getSize().width;   //获取窗口宽度
      int height = getSize().height; //获取窗口高度
      int x = (screenDimension.width - width) / 2 ;
      int y = (screenDimension.height - height) / 2 ;
      setBounds(x, y, width, height);
   } // 方法centerWindowOnScreen结束

   // 应用程序入口
   public static void main(String args[]) {
     new MainWindow();
   } // 方法main结束
} // 类MainWindow结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -