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

📄 frame.java

📁 图书馆座位管理系统
💻 JAVA
字号:
package librarysearchingsystem;

import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.*;

import fileUtility.*;

public class Frame extends JFrame implements Runnable {
    JPanel contentPane;
    BorderLayout borderLayout1 = new BorderLayout();
    JSplitPane mainPanel = new JSplitPane();
    ReadingRoomPane readingRoomPanel;
    JPanel friendsPanel = new JPanel();
    JPanel headPanel = new JPanel();
    LogPanel logPanel = new LogPanel(this);
    StatePanel statePanel = new StatePanel(this);

    NavigationPanel navigationPanel;

    //图画
    Image headImage, libImage;
    ImageIcon headIcon, libIcon;
    static Image frameIcon;
    JLabel titleLabel = new JLabel(), libLabel = new JLabel();
    JScrollPane jScrollPane1 = new JScrollPane();

    //处于登录状态的学生
    public static Student stu;
    //阅览室
    ReadingRoom readingRooms[];
    long time;
    private final int dividerLocation = 800,dividorLocation2 = 940,dividorLocation3 = 1023;
    JScrollPane jScrollPane2 = new JScrollPane();
    public Frame() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        //初始化
        initFiles();

        //自写程序
        frameIcon=Toolkit.getDefaultToolkit().getImage(filePath.frameImagePath);
        this.setIconImage(frameIcon);
        headImage = Toolkit.getDefaultToolkit().getImage(filePath.headImagePath);
        libImage = Toolkit.getDefaultToolkit().getImage(filePath.libImagePath);
        MediaTracker mt = new MediaTracker(this);
        mt.addImage(headImage, 0);
        mt.addImage(libImage, 0);
        try {
            mt.waitForID(0);
        } catch (InterruptedException ex) {
        }
        headIcon = new ImageIcon(headImage);
        libIcon = new ImageIcon(libImage);

        navigationPanel = new NavigationPanel(readingRooms, this);
        //自动生成程序
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
//        Frame_AboutBox ff=  new Frame_AboutBox(this);
//        ff.setSize(400,300) ;
//        ff.setVisible(true);
        setSize(Toolkit.getDefaultToolkit().getScreenSize());
        setTitle("图书馆管理系统");
        mainPanel.setBackground(new Color(194, 194, 255));
        mainPanel.setBorder(BorderFactory.createLoweredBevelBorder());
        mainPanel.setDoubleBuffered(true);
        mainPanel.setDividerSize(2);
        //controlPanel.setBackground(Color.darkGray);
//        readingRoomPanel.setBorder(BorderFactory.createRaisedBevelBorder());
        friendsPanel.setBackground(new Color(187, 180, 216));
        friendsPanel.setBorder(BorderFactory.createRaisedBevelBorder());
        headPanel.setBackground(UIManager.getColor(
                "TextField.selectionBackground"));
        headPanel.setBorder(BorderFactory.createRaisedBevelBorder());
        headPanel.setPreferredSize(new Dimension(1022, 80));
        headPanel.setLayout(null);
        titleLabel.setIcon(headIcon);
        titleLabel.setBounds(new Rectangle(2, 2, 765, 75));
        libLabel.setIcon(libIcon);
        jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
                                                  HORIZONTAL_SCROLLBAR_AS_NEEDED);
        jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
                                                VERTICAL_SCROLLBAR_AS_NEEDED);
        logPanel.setPreferredSize(new Dimension(240, 78));
        logPanel.setBounds(new Rectangle(769, 3, 244, 74)); //jScrollPane1.setBorder(BorderFactory.createLoweredBevelBorder());
        contentPane.add(mainPanel, java.awt.BorderLayout.CENTER);
        jScrollPane1.getViewport().add(navigationPanel);

        headPanel.add(titleLabel, null);
        headPanel.add(logPanel, null); /////////////////////////////////////////////////////
        mainPanel.add(jScrollPane1, JSplitPane.TOP);
        mainPanel.add(jScrollPane2, JSplitPane.BOTTOM);
        contentPane.add(headPanel, java.awt.BorderLayout.NORTH);
        jScrollPane2.getViewport().setBackground(new Color(136, 67, 199));
        jScrollPane2.getViewport().add(libLabel);
        mainPanel.setDividerLocation(dividerLocation);
        mainPanel.setEnabled(false);
//        Thread t = new Thread(this);
//        t.start();

        time = System.currentTimeMillis();
    }

    public void run() {

        try {
            while (true) {
                Thread.sleep(40);
                if (readingRoomPanel.isNeedToRepaint()) {
                    this.repaint(0, 100, 1024, 768);
                    readingRoomPanel.setNeedToRepaint(false);
                }
//                System.out.println("x=" + logPanel.jTextField1.getX());
//                System.out.println("y=" + controlPanel.getY());
//                System.out.println("width=" + controlPanel.getWidth());

//                this.repaint(controlPanel.getX(), controlPanel.getY(),
//                             controlPanel.width, controlPanel.height);
//                if(System.currentTimeMillis()-time>1000)System.exit(0);
            }
        } catch (InterruptedException ex) {
        }
    }


    public void log() {
        /** @todo  */
    }

    public void ensureSeat(int x, int y) {
        readingRoomPanel.changeIcon(y, x, true, stu.isBoy);
        statePanel.refresh(readingRoomPanel.r);
        changeFriendsPanelToNoramal();
        if (stu.readingRoom == null) {
            new TipsDialog("您选则了" + readingRoomPanel.r.name + "的座位", true);
            readingRoomPanel.r.proportionPanel.refresh(1);
        } else {
            stu.readingRoom.map[stu.seatY][stu.seatX] = ReadingRoom.seatNum;
            stu.readingRoom.proportionPanel.refresh( -1);
            readingRoomPanel.r.proportionPanel.refresh(1);
            new TipsDialog("您更换到了" + readingRoomPanel.r.name, true);
        }

        stu.readingRoom = readingRoomPanel.r;
        stu.seatX = x;
        stu.seatY = y;
        readingRoomPanel.r.map[y][x] = stu.serial;

        stu = null;
        ////////////////////////////////////

        changeStatePanelToLogPanel();
        changeToNavigationPanel();

        /** @todo  */
    }

    /**
     * changeLogPanelToMessagePanel
     */
    public void changeLogPanelToStatePanel() {
        headPanel.remove(logPanel);
        statePanel.setBounds(new Rectangle(769, 3, 244, 74));
        headPanel.add(statePanel);
        statePanel.refresh(null);
        headPanel.repaint();

//        System.out.println("stu.ID=" + stu.ID);
        /** @todo  */
    }

    public void changeLibLabelToFriendsPanel() {
        jScrollPane2.remove(libLabel);
        friendsPanel = new FriendsPanel(stu.ID, this, true);
        jScrollPane2.getViewport().add(friendsPanel);
        mainPanel.setEnabled(true);
        if (friendsPanel.getPreferredSize().getHeight() > 645) {
            mainPanel.setDividerLocation(780);
        } else {
            mainPanel.setDividerLocation(800);
        }
        mainPanel.setEnabled(false);
        friendsPanel.repaint();
    }

    public void changeStatePanelToLogPanel() {
        headPanel.remove(statePanel);
        headPanel.add(logPanel);
        logPanel.IDTextField.setText("<请在此输入学号>");
        logPanel.IDTextField.setSelectionStart(0);
        logPanel.IDTextField.setSelectionEnd("<请在此输入学号>".length());
        logPanel.IDTextField.requestFocus();
        headPanel.repaint();
    }


    public void changeToreadingRoom(ReadingRoom r) {

        jScrollPane1.remove(navigationPanel);
        //  jScrollPane1.remove(readingRoomPanel);
//        jScrollPane1.removeAll();
//        readingRoomPanel.r.print();
        readingRoomPanel = new ReadingRoomPane(r, this);
        jScrollPane1.getViewport().add(readingRoomPanel);
        mainPanel.setEnabled(true);
        mainPanel.setDividerLocation(dividorLocation3);
//        jScrollPane1.remove(readingRoomPanel);
//        jScrollPane1.getViewport().add(navigationPanel);
//        jScrollPane1.setVisible(true);
//
//        r.print();
    }

    public void changeFriendsPanelToNoramal() {

        jScrollPane2.remove(friendsPanel);
        friendsPanel = null;
        jScrollPane2.getViewport().add(libLabel);

    }

    public void changeToreadingRoom(ReadingRoom r, int serial, Icon icon) {
        jScrollPane1.remove(navigationPanel);
        readingRoomPanel = new ReadingRoomPane(r, this);
        readingRoomPanel.changeIcon(serial, icon);
        jScrollPane1.getViewport().add(readingRoomPanel);
        mainPanel.setEnabled(true);
        mainPanel.setDividerLocation(dividorLocation2);
    }


    public void changeToNavigationPanel() {
        if (readingRoomPanel != null) {
            jScrollPane1.remove(readingRoomPanel);
            readingRoomPanel = null;
        }
        jScrollPane1.getViewport().add(navigationPanel);

//        if (stu == null) {
            mainPanel.setEnabled(true);
            mainPanel.setDividerLocation(dividerLocation);
            mainPanel.setEnabled(false);
//    }
    }

    public void refreshFriends() {
        jScrollPane2.remove(friendsPanel);
        friendsPanel = null;
        friendsPanel = new FriendsPanel(stu.ID, this);
        jScrollPane2.getViewport().add(friendsPanel);
        mainPanel.setEnabled(true);
        if (friendsPanel.getPreferredSize().getHeight() > 645) {
            mainPanel.setDividerLocation(780);
        } else {
            mainPanel.setDividerLocation(800);
        }
        mainPanel.setEnabled(false);

    }


    public void initFiles() {
        new StudentsManagement();
        readingRooms = ReadingRoom.listReadingRooms(filePath.readingRoomPath);
        EnsureSeatDialog.f = this;
        ProportionPanel.f = this;
        //    functionPanel.setLayout(new FlowLayout());
        //   functionPanel.add(new FriendsFuncPanel());
        //  functionPanel.add(new friendsPanel(2));
        //   functionPanel=new friendsPanel(2);
    }
}

⌨️ 快捷键说明

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