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

📄 sudokuboard_swing.jad

📁 数独的一种实现
💻 JAD
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov  Date: 2/13/2008 10:18:47 PM
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   SudokuBoard_Swing.java

import java.awt.*;
import java.io.PrintStream;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;

public class SudokuBoard_Swing extends JFrame
    implements SudokuBoard
{
    private class DL
        implements DocumentListener
    {

        public void insertUpdate(DocumentEvent documentevent)
        {
            System.out.println((new StringBuilder()).append("Inserting ").append(documentevent).toString());
        }

        public void removeUpdate(DocumentEvent documentevent)
        {
            System.out.println((new StringBuilder()).append("Removing ").append(documentevent).toString());
        }

        public void changedUpdate(DocumentEvent documentevent)
        {
            System.out.println((new StringBuilder()).append("Changing ").append(documentevent).toString());
        }

        final SudokuBoard_Swing this$0;

        private DL()
        {
            this$0 = SudokuBoard_Swing.this;
            super();
        }

    }


    public SudokuBoard_Swing(SudokuGame sudokugame)
    {
        theGame = sudokugame;
        init();
    }

    public void init()
    {
        JPanel jpanel = new JPanel();
        jpanel.setLayout(new BorderLayout());
        jpanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
        jpanel.add(initGrid(), "Center");
        jpanel.add(initColumnLabels(), "North");
        jpanel.add(initRowLabels(), "West");
        setContentPane(jpanel);
        pack();
        setVisible(true);
    }

    public Object clone()
    {
        return new SudokuBoard_Swing(theGame);
    }

    private JPanel initColumnLabels()
    {
        JPanel jpanel = new JPanel();
        Object obj = null;
        jpanel.setLayout(new GridLayout(0, theGame.getSize() + 1));
        jpanel.add(Box.createRigidArea(new Dimension(20, 0)));
        for(int i = 1; i <= theGame.getSize(); i++)
        {
            JLabel jlabel = new JLabel(String.valueOf(i), 0);
            jpanel.add(jlabel);
        }

        return jpanel;
    }

    private JPanel initRowLabels()
    {
        JPanel jpanel = new JPanel();
        JLabel jlabel = null;
        jpanel.setLayout(new GridLayout(theGame.getSize(), 0));
        for(int i = 0; i < theGame.getSize(); i++)
        {
            jlabel = new JLabel(String.valueOf((char)(65 + i)), 0);
            jpanel.add(jlabel);
        }

        jlabel.setPreferredSize(new Dimension(50, 0));
        return jpanel;
    }

    private JPanel initTextArea()
    {
        JPanel jpanel = new JPanel();
        jpanel.setLayout(new BoxLayout(jpanel, 1));
        jpanel.add(Box.createRigidArea(new Dimension(0, 20)));
        PlainDocument plaindocument = new PlainDocument();
        plaindocument.addDocumentListener(new DL());
        JTextArea jtextarea = new JTextArea(plaindocument);
        jtextarea.setRows(10);
        jtextarea.setColumns(40);
        jpanel.add(jtextarea);
        return jpanel;
    }

    private JPanel initGrid()
    {
        int i = theGame.getSize();
        int j = theGame.getSectionSize();
        JPanel jpanel = new JPanel(new GridLayout(j, j));
        mb = new SudokuMiniBoard[i];
        int k = 0;
        for(int l = 0; l < j; l++)
        {
            for(int i1 = 0; i1 < j; i1++)
            {
                mb[k] = new SudokuMiniBoard(l, i1, j, theGame);
                jpanel.add(mb[k]);
                k++;
            }

        }

        return jpanel;
    }

    public void close()
    {
        dispose();
    }

    public void refresh()
    {
        if(mb.length != theGame.getSize())
            init();
        int l = theGame.getSize();
        int i1 = theGame.getSectionSize();
        for(int i = 0; i < l; i++)
        {
            for(int j = 0; j < l; j++)
            {
                int j1 = j / i1 + i1 * (i / i1);
                int k = theGame.getMatrix().get(i, j);
                mb[j1].setValue(i % i1, j % i1, k);
            }

        }

    }

    private SudokuGame theGame;
    private SudokuMiniBoard mb[];
}

⌨️ 快捷键说明

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