栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

棋盘覆盖问题中输出覆盖图形(同一数字的为相同颜色)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

棋盘覆盖问题中输出覆盖图形(同一数字的为相同颜色)

**棋盘覆盖问题中输出覆盖图形(同一数字的为相同颜色)

运行截图:



源码:
BoardUI类:网格的划分以及染色,每个网格都是一个按钮

package sf;


import javax.swing.*;        
import java.awt.*; 
import java.awt.Color;
import java.util.ArrayList;
public class BoardUI extends Jframe{        //继承Jframe类
	//int size=9;
	//JTextField textField = new JTextField("Hello");
	//JTextField tf[]=new JTextField[size];
	ArrayList rs=ResultDao.getList();
    Result rt=rs.get(0);
    int size=rt.getSize();
	JButton jbs[]=new JButton[size*size];  
	 int[][] board= new int[100][100];
	Color c[]=new Color[10];

	public static void main(String[] args) {    //主函数
		
		
		
			BoardUI a=new BoardUI();        //实现界面
			
	}
	public BoardUI()                //构造函数
	{
		//创建组件
		c[0]=Color.blue;c[1]=Color.gray;c[2]=Color.green;c[3]=Color.yellow;c[4]=Color.red;
		c[5]=Color.white;c[6]=Color.pink;c[7]=Color.cyan;c[8]=Color.orange;c[9]=Color.magenta;
		System.out.println(ResultDao.getList());
		ArrayList rs=ResultDao.getList();
	    Result rt=rs.get(0);
	    //int size=rt.getSize();
	   System.out.println(rt.getResultList().size());
	 // rt.getResultList().size();
	   board=(int[][]) rt.getResultList().toArray();
	   int[]n;
	   for(int i=0;i 

ChessBoard类:划分棋盘的算法,将结果存入实体类中

package sf;

import java.awt.EventQueue;

import java.util.Arrays;




public class ChessBoard {
	
	 int[][] board= new int[100][100];
	 static int tile=0;// 骨牌编号
	
public  void chessBoard(int tr,int tc,int dr,int dc,int size) {
	if(size==1)return;
	int t=tile++;
	int	s=size/2;
	if(dr=tc+s)
		chessBoard(tr,tc+s,dr,dc,s);
	else {
		board[tr+s-1][tc+s]=t;
		chessBoard(tr, tc+s, tr+s-1, tc+s, s);
			}
	if(dr>=tr+s&&dc=tr+s&&dc>=tc+s)
		chessBoard(tr+s, tc+s, dr, dc, s);
	else {
		board[tr+s][tc+s]=t;
		chessBoard(tr+s, tc+s, tr+s, tc+s, s);
		
	}
	
}
public  void disPlay(int tr,int tc,int dr,int dc,int size) {
	
	board[dr][dc]=-1;
	chessBoard(tr,tc,dr,dc,size);
	for(int i=0;i 

ResultDao类:存放result对象

import java.util.ArrayList;

	

	public class ResultDao {
	static ArrayList list=new ArrayList();

	public static ArrayList getList() {
		return list;
	}

	public static void setList(ArrayList list) {
		ResultDao.list = list;
	}
	public static  void add(Result result) {
		// TODO Auto-generated method stub
	   list.add(result);
	}
	}





StartUI类:输入阶数k以及特殊方格的坐标

import java.awt.EventQueue;

import javax.swing.Jframe;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

//import StudentBD.DBTest;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;
import javax.swing.LayoutStyle.ComponentPlacement;

public class StartUI extends Jframe {

	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;

	
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					StartUI frame = new StartUI();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	
	public StartUI() {
		setTitle("请输入参数");
		setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		
		JLabel lblNewLabel = new JLabel("输入阶数2^k");
		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 18));
		lblNewLabel.setToolTipText("");
		
		textField = new JTextField();//添加文本框
		textField.setFont(new Font("宋体", Font.PLAIN, 18));
		textField.addActionListener(new ActionListener() {//文本框监听
			public void actionPerformed(ActionEvent e) {
				//String number = textField.getText();//获得字符串类型的数据
		       //  System.out.println(number); //测试是否获得数据
			}
		});
		textField.setColumns(10);
		
		JButton btnNewButton = new JButton("填色");//添加签到按钮
		btnNewButton.setFont(new Font("宋体", Font.PLAIN, 18));
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.out.println(Integer.parseInt(textField.getText()));
				System.out.println(Integer.parseInt(textField_1.getText()));
				System.out.println(Integer.parseInt(textField_2.getText()));
				
				ChessBoard cb=new ChessBoard();
				cb.disPlay(0, 0,Integer.parseInt(textField_1.getText())-1,Integer.parseInt(textField_2.getText())-1,(int)Math.pow(2,Integer.parseInt(textField.getText())));
					
				
				
				//textField.setText("");//清空文本				
				//textField.requestFocus();//聚焦标记
				 
			}
	});
		
		textField_1 = new JTextField();
		textField_1.setFont(new Font("宋体", Font.PLAIN, 18));
		textField_1.setColumns(10);
		textField.addActionListener(new ActionListener() {//文本框监听
			public void actionPerformed(ActionEvent e) {
				//String number = textField.getText();//获得字符串类型的数据
		       //  System.out.println(number); //测试是否获得数据
			}
		});
		
		textField_2 = new JTextField();
		textField_2.setFont(new Font("宋体", Font.PLAIN, 18));
		textField_2.setColumns(10);
		textField.addActionListener(new ActionListener() {//文本框监听
			public void actionPerformed(ActionEvent e) {
				//String number = textField.getText();//获得字符串类型的数据
		       //  System.out.println(number); //测试是否获得数据
			}
		});
		
		JLabel lblNewLabel_1 = new JLabel("输入特殊方块的行和列");
		lblNewLabel_1.setToolTipText("");
		lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 18));
		GroupLayout gl_contentPane = new GroupLayout(contentPane);
		gl_contentPane.setHorizontalGroup(
			gl_contentPane.createParallelGroup(Alignment.TRAILING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGap(23)
							.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 196, GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 58, GroupLayout.PREFERRED_SIZE)
							.addGap(18)
							.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 59, GroupLayout.PREFERRED_SIZE))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGap(58)
							.addComponent(lblNewLabel)
							.addGap(36)
							.addComponent(textField, GroupLayout.PREFERRED_SIZE, 156, GroupLayout.PREFERRED_SIZE))
						.addGroup(gl_contentPane.createSequentialGroup()
							.addGap(175)
							.addComponent(btnNewButton)))
					.addContainerGap(66, Short.MAX_VALUE))
		);
		gl_contentPane.setVerticalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addContainerGap(57, Short.MAX_VALUE)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.baseLINE)
						.addComponent(lblNewLabel)
						.addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addGap(28)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.baseLINE)
						.addComponent(lblNewLabel_1, GroupLayout.PREFERRED_SIZE, 21, GroupLayout.PREFERRED_SIZE)
						.addComponent(textField_1, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE)
						.addComponent(textField_2, GroupLayout.PREFERRED_SIZE, 27, GroupLayout.PREFERRED_SIZE))
					.addGap(54)
					.addComponent(btnNewButton)
					.addGap(35))
		);
		contentPane.setLayout(gl_contentPane);
	}
}

代码很烂,希望能帮到你

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号