📄 snakeframe.java
字号:
import java.awt.*;import java.awt.event.*;import javax.swing.*;class SnakeFrame extends JFrame{ SnakeFrame() { final SnakePanel p=new SnakePanel(this); //添加菜单;;;;;;;;;;;;;;;;;;;;-----{ JMenuBar menubar=new JMenuBar(); setJMenuBar(menubar); //File menu JMenu fileMenu=new JMenu("文件"); fileMenu.add(new AbstractAction("帮助") { public void actionPerformed(ActionEvent event){ JOptionPane.showConfirmDialog( p,"上下左右 控制|"+"enter-暂停","操纵说明", JOptionPane.OK_OPTION,JOptionPane.INFORMATION_MESSAGE); } } ); fileMenu.add(new AbstractAction("退出") { public void actionPerformed(ActionEvent event){ System.exit(0); } } ); menubar.add(fileMenu); //"设置"菜单 JMenu optionMenu=new JMenu("设置"); //等级选项 ButtonGroup groupDegree = new ButtonGroup(); JRadioButtonMenuItem oneItem = new JRadioButtonMenuItem("第1级"); JRadioButtonMenuItem twoItem = new JRadioButtonMenuItem("第2级"); JRadioButtonMenuItem threeItem = new JRadioButtonMenuItem("第3级"); threeItem.setSelected(true); JRadioButtonMenuItem fourItem = new JRadioButtonMenuItem("第4级"); JRadioButtonMenuItem fiveItem = new JRadioButtonMenuItem("第5级"); groupDegree.add(oneItem); groupDegree.add(twoItem); groupDegree.add(threeItem); groupDegree.add(fourItem); groupDegree.add(fiveItem); oneItem.addActionListener(new listener(300) ); twoItem.addActionListener(new listener(200) ); threeItem.addActionListener(new listener(100) ); fourItem.addActionListener(new listener(70) ); fiveItem.addActionListener(new listener(50) ); JMenu degreeMenu=new JMenu("等级"); degreeMenu.add(oneItem); degreeMenu.add(twoItem); degreeMenu.add(threeItem); degreeMenu.add(fourItem); degreeMenu.add(fiveItem); optionMenu.add(degreeMenu); // 风格选项 final JCheckBoxMenuItem showGridItem = new JCheckBoxMenuItem("显示网格"); showGridItem.setSelected(true); showGridItem.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e) { if(!showGridItem.isSelected()){ p.setBackground(Color.blue); }else{ p.setBackground(Color.lightGray); } } } ); ButtonGroup group = new ButtonGroup(); JRadioButtonMenuItem springItem = new JRadioButtonMenuItem("春天气息"); springItem.setSelected(true); JRadioButtonMenuItem summerItem = new JRadioButtonMenuItem("夏天风采"); JRadioButtonMenuItem autumnItem = new JRadioButtonMenuItem("秋天浪漫"); JRadioButtonMenuItem winterItem = new JRadioButtonMenuItem("冬天雪白"); group.add(springItem); group.add(summerItem); group.add(autumnItem); group.add(winterItem); JMenu stylemenu=new JMenu("风格"); stylemenu.add(showGridItem); stylemenu.addSeparator(); stylemenu.add(springItem); stylemenu.add(summerItem); stylemenu.add(autumnItem); stylemenu.add(winterItem); optionMenu.add(stylemenu); menubar.add(optionMenu); //menu;;;;;;;;;;;;;;;;;;;;-----} Container contentpane=getContentPane(); contentpane.setLayout(new FlowLayout()); contentpane.add(p); //p.setBackground(Color.blue); //;;;;;;;;; JButton newcmd=new JButton("新游戏"); newcmd.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { //System.out.println("new game"); p.newGame(speedtime); } } ); JButton stopcmd=new JButton("暂停"); stopcmd.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { p.stopGame(); } } ); JButton runcmd=new JButton("继续"); runcmd.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { p.resumeGame(); } } ); scoreField=new JTextField("0",3); scoreField.setEnabled(false); scoreField.setHorizontalAlignment(scoreField.CENTER); JPanel toolPanel=new JPanel(); toolPanel.add(newcmd); toolPanel.add(stopcmd); toolPanel.add(runcmd); toolPanel.add(scoreField); contentpane.add(toolPanel); //;;;;;;;;; } public JTextField scoreField; private long speedtime=100; private class listener implements ActionListener{ private long pause; listener(long pause){ if (pause>10){ this.pause=pause; }else{ this.pause=100; } } public void actionPerformed(ActionEvent e){ speedtime=pause; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -