⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pokerframe.java

📁 别人的大作
💻 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 + -