📄 pokerframe.java
字号:
package poker;
/**
* <p>Title: 斗地主</p>
* <p>Description: 框架类</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author 李艳生
* @version 1.0
*/
import java.awt.*;
import java.awt.Graphics2D;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import java.net.URL;
import java.net.URLClassLoader;
public class PokerFrame extends JFrame {
private MainPanel mp;
BorderLayout borderLayout1 = new BorderLayout();
//背景音乐
private Sound backsound=new Sound("back.mid");
private InputDialog id = new InputDialog();
JMenuBar bar = new JMenuBar();
private JMenu mGame = new JMenu("Game"),
mView = new JMenu("View"),
mHelp = new JMenu("Help");
private JMenuItem miStart = new JMenuItem("Start Game"),
miRestart = new JMenuItem("Restart Game"),
miSetBackColor = new JMenuItem("Set Desktop Color"),
miSetFontColor = new JMenuItem("Set Font Color"),
miModifyPlayer = new JMenuItem("Modify Your Name"),
miExit = new JMenuItem("Quit");
private JCheckBoxMenuItem miBackMusic = new JCheckBoxMenuItem("Back Music",true);
private JCheckBoxMenuItem miAsWindows = new JCheckBoxMenuItem("Windows"),
miAsMotif = new JCheckBoxMenuItem("Motif"),
miAsMetal = new JCheckBoxMenuItem("Metal",true);
private JMenuItem miHelp = new JMenuItem("Game Rules"),
miAbout = new JMenuItem("About Game");
/** 建立并设置窗口菜单
*
*/
private void createMenu(){
bar.add(mGame);
bar.add(mView);
bar.add(mHelp);
mGame.add(miStart);
mGame.add(miRestart);
mGame.addSeparator();
mGame.add(miSetBackColor);
mGame.add(miSetFontColor);
mGame.add(miBackMusic);
mGame.addSeparator();
mGame.add(miModifyPlayer);
mGame.addSeparator();
mGame.add(miExit);
mView.add(miAsWindows);
mView.add(miAsMotif);
mView.add(miAsMetal);
mHelp.add(miHelp);
mHelp.add(miAbout);
setJMenuBar(bar);
miStart.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
RandomMaster rm = new RandomMaster();
rm.show();
delay(500);
rm.dispose();
CardOperation.post();
mp.repaint();
}
});
miRestart.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
CardOperation.post();
mp.repaint();
}
});
miSetBackColor.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Color newBackColor = JColorChooser.showDialog(PokerFrame.this, "设置牌桌颜色", mp.getBackground());
if(newBackColor!=null){
mp.setBackground(newBackColor);
}
}
});
miSetFontColor.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
Color newFontColor = JColorChooser.showDialog(PokerFrame.this, "设置牌桌颜色", mp.getForeground());
if(newFontColor!=null){
mp.setForeground(newFontColor);
}
}
});
miBackMusic.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
if(backsound.hasPlayed){
miBackMusic.setState(false);
backsound.stop();
}
else {
miBackMusic.setState(true);
backsound.loop();
}
}
});
miModifyPlayer.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
id.show();
mp.repaint();
}
});
miExit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
System.exit(0);
}
});
miAsWindows.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
String plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
setView(plaf);
miAsWindows.setState(true);
miAsMetal.setState(false);
miAsMotif.setState(false);
}
});
miAsMotif.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
String plaf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
setView(plaf);
miAsWindows.setState(false);
miAsMetal.setState(false);
miAsMotif.setState(true);
}
});
miAsMetal.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
String plaf = "javax.swing.plaf.metal.MetalLookAndFeel";
setView(plaf);
miAsWindows.setState(false);
miAsMetal.setState(true);
miAsMotif.setState(false);
}
});
miHelp.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
HelpDialog helpDlg = new HelpDialog();
helpDlg.show();
}
});
miAbout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
aboutDlg();
}
});
}
//关于对话框
private void aboutDlg(){
JOptionPane.showMessageDialog(this, "双狮斗地主V1.0 CopyRight 2004 (C) 李艳生 版权所有 \n作者:李艳生\n邮箱:lys650@sohu.com", "关于", 1);
}
//Construct the frame
public PokerFrame() {
mp=new MainPanel();
Container con=this.getContentPane();
con.add(mp,"Center");
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
this.setLocale(java.util.Locale.getDefault());
mp.setBackground(Color.black);
mp.setLayout(borderLayout1);
this.setSize(new Dimension(800,574));
this.setState(Frame.NORMAL);
this.setTitle("双狮斗地主 V1.0");
createMenu();
this.setResizable(false);
//读取图片
CardOperation.loadCards(mp);
//CardOperation.post();
//PokerKernal.status = true;
id.show();
backsound.loop();
}
/**
* 根据字符串设置窗口外观
* @param plaf:窗口外观的描述
*/
private void setView(String plaf){
try{
UIManager.setLookAndFeel(plaf);
SwingUtilities.updateComponentTreeUI(this);
}
catch(Exception e){}
}
//延时
public void delay(int time){
try{
Thread.currentThread().sleep(time);
}
catch(Exception e){}
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -