📄 sudokuboard_swing.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 + -