📄 frame.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 + -