📄 mainframe.java
字号:
package nicholas.game.kyodai;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import nicholas.swing.AboutDialog;
import nicholas.swing.JSplashWindow;
public class MainFrame extends JFrame implements ActionListener {
private JMenuItem aboutItem;
private JMenuItem exitItem;
private JMenuItem startItem;
private JMenuItem optionItem;
private JMenuItem tipItem;
private JMenuItem refreshItem;
private JMenuItem logItem;
private JMenuItem bombItem;
private JMenuItem pauseItem;
private MainPanel mainPanel;
private LevelInfo levelInfo;
private LevelLog levelLog;
public MainFrame() {
super("连连看");
levelInfo = new LevelInfo();
readLog();
setMenuBar();
setUI();
setIconImage(ImageFactory.getInstance().getImageicon(43).getImage());
setSize(650,520);
Dimension screen = getToolkit().getScreenSize();
setLocation((screen.width-getSize().width)/2, (screen.height-getSize().height)/2);
this.setVisible(true);
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
writeLog();
System.exit(0);
}
}
);
}
private void writeLog() {
}
private void readLog() {
}
private void setMenuBar() {
JMenu fileMenu = new JMenu("游戏(G)");
JMenu helpMenu = new JMenu("帮助(H)");
JMenu contMenu = new JMenu("辅助(C)");
fileMenu.setMnemonic('G');
helpMenu.setMnemonic('H');
contMenu.setMnemonic('C');
startItem = new JMenuItem("开局(N)");
startItem.setMnemonic('N');
startItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F2,0));
pauseItem = new JMenuItem("暂停(P)");
pauseItem.setMnemonic('P');
pauseItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_PAUSE,0));
refreshItem = new JMenuItem("刷新(R)");
refreshItem.setMnemonic('R');
refreshItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
tipItem = new JMenuItem("提示(T)");
tipItem.setMnemonic('T');
tipItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
optionItem = new JMenuItem("选项(O)...");
optionItem.setMnemonic('O');
logItem = new JMenuItem("排行榜(B)...");
logItem.setMnemonic('B');
exitItem = new JMenuItem("退出(X)");
exitItem.setMnemonic('X');
aboutItem = new JMenuItem("关于(A)...");
aboutItem.setMnemonic('A');
aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0));
bombItem = new JMenuItem("炸弹(M)");
bombItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4,0));
bombItem.setMnemonic('M');
startItem.addActionListener(this);
pauseItem.addActionListener(this);
refreshItem.addActionListener(this);
tipItem.addActionListener(this);
optionItem.addActionListener(this);
logItem.addActionListener(this);
exitItem.addActionListener(this);
aboutItem.addActionListener(this);
bombItem.addActionListener(this);
fileMenu.add(startItem);
fileMenu.add(pauseItem);
contMenu.add(refreshItem);
contMenu.add(bombItem);
contMenu.add(tipItem);
// fileMenu.add(optionItem);
// fileMenu.add(logItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
helpMenu.add(aboutItem);
helpMenu.add(contMenu);
JMenuBar bar = new JMenuBar();
bar.add(fileMenu);
bar.add(helpMenu);
setJMenuBar(bar);
}
private void setUI() {
mainPanel = new MainPanel(levelInfo);
getContentPane().add(mainPanel,BorderLayout.CENTER);
}
public static void main(String args[]) {
JSplashWindow.setInstance("Nicholas Lin",ImageFactory.getInstance().getImageicon(42));
MainFrame application = new MainFrame();
JSplashWindow.getInstance().dispose();
}
private void showAboutDialog() {
String readme = "";
File file = new File("readme.txt");
if(file.exists()) {
try {
BufferedReader input = new BufferedReader(new FileReader(file));
StringBuffer buffer = new StringBuffer();
String text;
while((text = input.readLine())!=null)
buffer.append(text+"\n");
input.close();
readme = buffer.toString();
} catch(IOException ioException) {}
}
AboutDialog dialog = new AboutDialog(this, "连连看",readme,
ImageFactory.getInstance().getImageicon(41),
ImageFactory.getInstance().getImageicon(40));
dialog = null;
}
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==startItem) {
mainPanel.restart();
} else if(ae.getSource()==pauseItem) {
mainPanel.setPaused(!mainPanel.isPaused());
} else if(ae.getSource()==optionItem) {
} else if(ae.getSource()==logItem) {
} else if(ae.getSource()==exitItem) {
writeLog();
System.exit(0);
} else if(ae.getSource()==aboutItem) {
showAboutDialog();
} else if(ae.getSource()==bombItem) {
mainPanel.useBomb();
} else if(ae.getSource()==refreshItem) {
mainPanel.refresh();
} else if(ae.getSource()==tipItem) {
mainPanel.showNext();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -