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

📄 jframeboard.java

📁 A java implementation of the classic Solitaire Game. Uses swing GUI, drag-and-drop of marbles, multi
💻 JAVA
字号:
/*
 * JFrameBoard.java
 *
 * Projektet Solitaire 鋜 en datoriserad version av
 * br鋎spelet med samma namn. Spelet utvecklas som
 * som en laboration under kursen
 * Objekthanterad programmering med Java II
 * vid h鰃skolan Gotland.
 */
package Solitaire;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLayeredPane;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JSeparator;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 * Denna klass 鋜 en grafisk representation av spelet Solitaire och
 * spelbr鋎et. Den inkluderar 鋠en menyerna, dess actionhandlers,
 * och anropar enklare JDialogs f鰎 att inh鋗ta kvittens fr錸
 * spelaren. Metoden PaintComponent 鋜 鰒erriden och ritar en
 * bakgrundsbild, Image.
 * @version 2007-12-26
 * @author M錸s Th鰎nqvist
 */
public class JFrameBoard extends JFrame
{
    /**
     * Creates a new instance of JFrameBoard
     * @param logic H鋘visning till logikklassen
     */
    public JFrameBoard(final Solitaire logic)
    {
        // Lite grundinst鋖lningar f鰎 JFrame
        super("Solitaire");
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        setLocationByPlatform(true);
        setSize(480, 480);
        setVisible(true);
        setResizable(false);
        
        
        
        // skapa menyerna
        setJMenuBar(new JMenuBar()
        {{
             add(new JMenu("Arkiv")
             {{
                  add(new JMenuItem("Nytt spel")
                  {{
                       addActionListener(new ActionListener()
                       {
                           public void actionPerformed(ActionEvent e)
                           {
                               // 鰌pna en JDialog och inh鋗ta kvittens,
                               if (JOptionPane.showConfirmDialog(
                                       JFrameBoard.this,
                                       "Vill du starta ett nytt spel?",
                                       "Nytt spel",
                                       JOptionPane.YES_NO_OPTION) ==
                                       JOptionPane.YES_OPTION)
                               {
                                   // om ja - skapa nytt spel
                                   logic.newGame();
                               }
                           }
                       });
                  }
                  });
                  
                  add(new JSeparator());
                  
                  add(new JMenuItem("Ladda spel")
                  {{
                       addActionListener(new ActionListener()
                       {
                           public void actionPerformed(ActionEvent e)
                           {
                               // b鰎ja med att 鰌pna en JFileChooser
                               new JFileChooser()
                               {{
                                    setDialogTitle("Ladda spel");
                                    setFileFilter(new FileNameExtensionFilter(
                                            "Solitaire files", "sol"));
                                    if (showOpenDialog(JFrameBoard.this) ==
                                            APPROVE_OPTION)
                                        // om en fil valdes, och bara d

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -