📄 studentframe.java
字号:
/**
* 多屏幕事件控制
*/
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.Dimension;
import java.awt.Container;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class StudentFrame
{
public static void main(String[] args)
{
OpenFrame frame = new OpenFrame();
//主窗口屏幕关闭时,系统退出
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
/**
* 这是定制自己的按钮框架
*/
class OpenFrame extends JFrame
{
private static final int WIDTH = 400;
private static final int HEIGHT = 300;
public OpenFrame()
{
Container con = getContentPane();//得到了内容窗格
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
int x = (width - WIDTH)/2;
int y = (height - HEIGHT)/2;
setLocation(x, y);//设置坐标起点
setSize(WIDTH, HEIGHT);//设置框架的大小
Image image = kit.getImage("duke.gif");// duke.gif为图像文件名
setIconImage(image);//设置框架图标
setTitle("学生管理系统主窗口");//设置框架的标题
setResizable(false);//设置用户不可以改变框架的大小
OpenButtonPanel panel = new OpenButtonPanel(this);//得到定制的面板
con.add(panel);//将面板添加到内容窗格中
}
}
/**
* 这是继承了JPanel面板类
*/
class OpenButtonPanel extends JPanel
{
private JButton makeNewFrameButton;
private JFrame parFrame;
public OpenButtonPanel(JFrame frame)
{
parFrame = frame;
//生成创建新窗口的按钮
makeNewFrameButton = new JButton("Open New Frame");
//将按钮添加到面板中
add(makeNewFrameButton);
//向按钮注册监听器
makeNewFrameButton.addActionListener(new MakeNewFrameAction());
}
//监听器类
private class MakeNewFrameAction implements ActionListener
{
//当产生某个动作时,会自动调用该方法,实现背景色的设定
public void actionPerformed(ActionEvent event)
{
JFrame subFrame = new CloseFrame(parFrame);//生成新的窗口实例
subFrame.show();
subFrame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
if(!parFrame.isShowing());
parFrame.show();
}
});
parFrame.hide();
}
}
}
/**
* 学生管理系统第二个页面
*/
class CloseFrame extends JFrame
{
private static final int WIDTH = 400;
private static final int HEIGHT = 300;
private JFrame parFrame;
public CloseFrame(JFrame frame)
{
parFrame = frame;
Container con = getContentPane();//得到了内容窗格
setSize(WIDTH, HEIGHT);//设置框架的大小
setTitle("学生管理系统第二个页面");//设置框架的标题
setResizable(false);//设置用户不可以改变框架的大小
CloseButtonPanel panel = new CloseButtonPanel(this);//得到定制的面板
con.add(panel);//
}
class CloseButtonPanel extends JPanel
{
public CloseButtonPanel(JFrame subFrame)
{
JButton closeNewFrameButton = new JButton("Close New Frame");
add(closeNewFrameButton);
closeNewFrameButton.addActionListener(new CloseNewFrameAction(subFrame));
setBackground(Color.green);
}
}
class CloseNewFrameAction implements ActionListener
{
private JFrame subFrame;
public CloseNewFrameAction(JFrame subFrame)
{
this.subFrame = subFrame;
}
public void actionPerformed(ActionEvent e)
{
subFrame.hide();
parFrame.show();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -