?? 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 + -