📄 mainframe.java
字号:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.BorderFactory;
import javax.swing.border.Border;
import java.awt.Image;
import java.awt.Font;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
/**
* 学生管理系统的主界面
*/
public class MainFrame extends JFrame
{
private static final int WIDTH = 450;
private static final int HEIGHT = 360;
public static void main(String[] args)
{
MainFrame frame = new MainFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
public MainFrame()
{
setSize(WIDTH, HEIGHT);//设置框架的大小
setTitle("学生管理系统");//设置框架的标题
setResizable(false);
JPanel titlePanel = new TitlePanel();
JPanel contentPanel = new MainContentPanel();
JPanel buttonPanel = new MainButtonPanel(this);
Container con = getContentPane();
con.add(titlePanel, BorderLayout.NORTH);
con.add(contentPanel, BorderLayout.CENTER);
con.add(buttonPanel, BorderLayout.SOUTH);
}
}
/**
* 标题面板
*/
class TitlePanel extends JPanel
{
private ImageIcon titleImageIcon, titleIcon;
private Image titleImage;
public TitlePanel()
{
// 面板图像的转换
titleImageIcon = new ImageIcon("ko12_2a.gif");
titleImage = titleImageIcon.getImage();
titleIcon = new ImageIcon(titleImage.getScaledInstance(70,50,Image.SCALE_SMOOTH));
// 设置面板的字体及大小
add(new JLabel(titleIcon));
setBackground(new Color(51,153,153));
JLabel titleLabel = new JLabel("学 生 管 理 系 统");
titleLabel.setPreferredSize(new Dimension(190,50));
titleLabel.setForeground(new Color(204,0,153));
Font titleLabelFont = new Font("Dialog",Font.BOLD,24);
titleLabel.setFont(titleLabelFont);
add(titleLabel);
add(new JLabel(titleIcon));
}
}
/**
* 内容面板
*/
class MainContentPanel extends JPanel
{
public MainContentPanel()
{
Border panelOutBorder = BorderFactory.createLineBorder(new Color(255,204,51),4);
Border panelInBorder = BorderFactory.createLineBorder(new Color(153,204,0),3);
setBorder(BorderFactory.createCompoundBorder(panelOutBorder,panelInBorder));
setBackground(new Color(204,204,255));
JLabel conLabel = new JLabel(new ImageIcon("changceng.jpg"));
add(conLabel);
}
}
/**
* 按钮面板,放置在底部,相应用户的事件
*/
class MainButtonPanel extends JPanel
{
private JFrame parFrame;
public MainButtonPanel(JFrame frame)
{
parFrame = frame;
setBackground(new Color(230, 255, 204));
JButton initButton = new JButton("数据库初始化");
JButton studentButton = new JButton("维护学生信息");
JButton courseButton = new JButton("维护课程信息");
Font buttonFont = new Font("Dialog",Font.BOLD,14);
initButton.setFont(buttonFont);
studentButton.setFont(buttonFont);
courseButton.setFont(buttonFont);
Dimension buttonDimension = new Dimension(125,40);
initButton.setPreferredSize(buttonDimension);
courseButton.setPreferredSize(buttonDimension);
studentButton.setPreferredSize(buttonDimension);
Color buttonBackColor = new Color(230, 204, 255);
initButton.setBackground(buttonBackColor);
courseButton.setBackground(buttonBackColor);
studentButton.setBackground(buttonBackColor);
initButton.setToolTipText("完成系统数据库的初始化工作,相应的表及表结构会建立");
courseButton.setToolTipText("维护系统中的课程信息");
studentButton.setToolTipText("维护系统中的学生信息");
add(initButton);
add(courseButton);
add(studentButton);
initButton.addActionListener(new DatabaseInitAction());
studentButton.addActionListener(new MakeStudentFrameAction());
courseButton.addActionListener(new MakeCourseFrameAction());
}
//监听器类
private class MakeStudentFrameAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
StudentFrame subFrame = new StudentFrame(parFrame);//生成学生窗口实例
subFrame.show();
parFrame.hide();
subFrame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
if(!parFrame.isShowing());
parFrame.show();
}
});
}
}
private class MakeCourseFrameAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
CourseFrame subFrame = new CourseFrame(parFrame);//生成课程窗口实例
subFrame.show();
parFrame.hide();
subFrame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
if(!parFrame.isShowing());
parFrame.show();
}
});
}
}
private class DatabaseInitAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
parFrame.hide();
int i = JOptionPane.showConfirmDialog(null,"你是第一次执行数据库初始化吗?请确认!!","数据库初始化",JOptionPane.YES_NO_OPTION);
if(i == 0)//用户选择"是"
{
try
{
new CreateDatabase().execCreateTable();
JOptionPane.showMessageDialog(null,"数据库初始化完成",
"数据库初始化",JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"数据库初始化失败、请检查数据库!!",
"数据库初始化",JOptionPane.INFORMATION_MESSAGE);
}
parFrame.show();
}
if(i == 1)//用户选择"否"
{
try
{
new CreateDatabase().execMuilCreateTable();
JOptionPane.showMessageDialog(null,"数据库初始化完成",
"数据库初始化",JOptionPane.INFORMATION_MESSAGE);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"数据库初始化失败、请检查数据库!!",
"数据库初始化",JOptionPane.INFORMATION_MESSAGE);
}
parFrame.show();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -