📄 mygui.java
字号:
/**
*
*/
package cn.tsinghua.ag5.CarModel;
import cn.tsinghua.ag5.CarModel.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* @author wfq
*
*/
public class MyGUI extends JFrame implements KeyListener
{
/**
*
*/
private static final long serialVersionUID = 1724513286073868105L;
//声明全局变量
public static MyGUI s_mainWnd;
public static boolean s_isRoadCreated = false;
public static float s_emStep = 0.05f ; // s
public static Image s_carImage;
public static VisualBar s_toUpdate[] = new VisualBar[3];
// private Container t_container;
public static CanvasPanel s_cvs;
private static AcEvtHandler s_handler;
private JButton m_btStart, m_btReset, m_switch, m_pause;
private static BorderLayout s_layout;
private static JPanel s_panel;
public static VisualSteer s_steer;
/**
*
*/
public MyGUI() {
// TODO Auto-generated constructor stub
super("系统建模理论与方法课程设计 by wfq");
Container t_container = this.getContentPane();
s_handler = new AcEvtHandler();
// t_container.setBackground( Color.GRAY);
s_layout = new BorderLayout(2, 2);
t_container.setLayout(s_layout);
s_panel = new RightFrame();
s_panel.setLayout(new FlowLayout());
s_panel.setPreferredSize(new Dimension(215, 768));
// t_panel.setSize(200, 768);
// t_panel.setBackground(Color.PINK);
s_steer = new VisualSteer();
s_panel.add(s_steer);
s_toUpdate[0] = new VisualBar("Speed:", 0,40);
s_toUpdate[1] = new VisualBar("Drive:", 0, 4000);
s_toUpdate[2] = new VisualBar("Brake:", 0, 8000);
for(VisualBar i : s_toUpdate)
{
s_panel.add(i);
}
m_switch = new JButton(" Switch ");
m_switch.addActionListener(s_handler);
s_panel.add(m_switch);
m_btReset = new JButton(" R e s e t ");
m_btReset.addActionListener(s_handler);
s_panel.add(m_btReset);
m_btStart = new JButton(" S t a r t ");
m_btStart.addActionListener(s_handler);
s_panel.add(m_btStart);
m_pause = new JButton(" P a u s e ");
m_pause.addActionListener(s_handler);
s_panel.add(m_pause);
s_panel.setBackground( Color.LIGHT_GRAY);
s_panel.setVisible(true);
t_container.add(s_panel, BorderLayout.EAST);
setSize(1024, 768);
setVisible(true);
addKeyListener(this);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
GeogInfo.genRoad();
CanvasPanel.s_cars = new DynModel[DynModel.s_carNum];
CanvasPanel.s_ctrl = new CtrlStrategy[DynModel.s_carNum];
for(int i = 0; i<DynModel.s_carNum; i++)
{
CanvasPanel.s_cars[i] = new DynModel(i + 1);
if(i == 0)
{
CanvasPanel.s_ctrl[i] = new CtrlStrategy(CanvasPanel.s_cars[i]);
}else
{
CanvasPanel.s_ctrl[i] = new CtrlStrategy(CanvasPanel.s_cars[i],
CanvasPanel.s_cars[i-1]);
}
}
s_cvs = new CanvasPanel();
s_mainWnd = new MyGUI();
Container t_container = s_mainWnd.getContentPane();
// t_container.setLayout(new FlowLayout());
t_container.add(s_cvs, BorderLayout.WEST);
//s_mainWnd.pack();
s_mainWnd.setResizable(false);
s_mainWnd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// System.out.println(MyGUI.class.getResource("") + "car.gif");
s_carImage = Toolkit.getDefaultToolkit().getImage("car.jpg");
if(s_carImage == null)
{
throw new Error("Cannot get image!\n");
}
s_panel.repaint();
s_cvs.startCanvas();
}
// private void genListener()
// {
// s_handler = new AcEvtHandler();
// }
public void keyPressed(KeyEvent p_event)
{
// System.out.println(" key pressed!");
if(p_event.getKeyCode() == KeyEvent.VK_ENTER)
{
CanvasPanel.s_isGlobal = ! CanvasPanel.s_isGlobal;
}
}
public void keyReleased(KeyEvent p_event)
{
// System.out.println(" key released!");
// if(p_event.getKeyCode() == KeyEvent.VK_SPACE)
// {
// CanvasPanel.s_isGlobal = ! CanvasPanel.s_isGlobal;
// }
}
public void keyTyped(KeyEvent p_event)
{
// System.out.println("Action Key actioned!");
}
private void reset()
{
s_cvs.pauseCanvas();
CanvasPanel.s_cars = null;
CanvasPanel.s_ctrl = null;
CanvasPanel.s_cars = new DynModel[DynModel.s_carNum];
CanvasPanel.s_ctrl = new CtrlStrategy[DynModel.s_carNum];
for(int i = 0; i<DynModel.s_carNum; i++)
{
CanvasPanel.s_cars[i] = new DynModel(i + 1);
if(i == 0)
{
CanvasPanel.s_ctrl[i] = new CtrlStrategy(CanvasPanel.s_cars[i]);
}else
{
CanvasPanel.s_ctrl[i] = new CtrlStrategy(CanvasPanel.s_cars[i],
CanvasPanel.s_cars[i-1]);
}
}
}
private class AcEvtHandler implements ActionListener
{
public void actionPerformed(final ActionEvent p_event)
{
if(p_event.getSource() == m_btStart)
{
s_cvs.resumeCanvas();
}else if(p_event.getSource() == m_btReset)
{
reset();
}else if(p_event.getSource() == m_switch)
{
CanvasPanel.s_isGlobal = ! CanvasPanel.s_isGlobal;
}else if(p_event.getSource() == m_pause)
{
s_cvs.pauseCanvas();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -