mainframe.java

来自「用JAVA编写的数独游戏源代码,帮助你快速得到游戏的答案」· Java 代码 · 共 93 行

JAVA
93
字号
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


class MainFrame  extends JFrame  implements ActionListener {
	
	JTextField[][][][]  numberInput = new JTextField[3][3][3][3] ;
	JButton button = new  JButton("查看结果") ;

	public 	MainFrame() {
		super() ;
        setTitle("");
		setSize(500, 500);
        getContentPane().setLayout(new BorderLayout());
        JPanel center = new JPanel(new GridLayout(3,3));
        
        for(int i=0;i<3;i++) 
	        for(int j=0;j<3;j++) {
	        	JPanel panel = new JPanel(new GridLayout(3,3));
			    for(int m=0;m<3;m++) 
	        		for(int n=0;n<3;n++) {
	        			numberInput[i][j][m][n] = new JTextField(1); 
	        			numberInput[i][j][m][n].setFont(new Font("宋体",Font.PLAIN,48) );
	        			panel.add(numberInput[i][j][m][n]) ;
	        		}
	        	center.add(panel);	
	        		
	        }
        
		getContentPane().add(center , BorderLayout.CENTER ) ;
		
		button.addActionListener(this) ;
		getContentPane().add(button , BorderLayout.SOUTH ) ;
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	
	
	public void actionPerformed( ActionEvent e ) {
		if (e.getSource()!=button) return ;
		int[][]  datas = new int[9][9] ;
        for(int i=0;i<3;i++) 
	        for(int j=0;j<3;j++) 
			    for(int m=0;m<3;m++) 
	        		for(int n=0;n<3;n++) {
	        			String s = numberInput[i][j][m][n].getText().trim() ;
	        			if (s.equals("")) continue ;
	        			if (s.length()!=1) {
	        				numberInput[i][j][m][n].setText("E") ;
	        				return ;
	        			}
	        			if ("0123456789".indexOf(s.charAt(0))==-1) {
	        				numberInput[i][j][m][n].setText("E") ;
	        				return ;
	        			}	
	        			int number = Integer.parseInt(numberInput[i][j][m][n].getText().trim()) ;
	        			datas[i*3+m][j*3+n] = number ;
	        		}
 
	        		
       SudoService.initDatas(datas);
       SudoService.work();
	   SudoService.print() ;
       for(int i=0;i<3;i++) 
	        for(int j=0;j<3;j++) 
			    for(int m=0;m<3;m++) 
	        		for(int n=0;n<3;n++) 
	        			numberInput[i][j][m][n].setText(String.valueOf(SudoService.datas[i*3+m][j*3+n])) ;

		this.repaint() ;

	}




	
	public static void main(String[]  args ) {
		MainFrame mainFrame = new MainFrame();
		mainFrame.setVisible(true); 
	}
	
	
}

⌨️ 快捷键说明

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