littlefermat
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2007年12月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔档案
2008年4月 (2)
2007年12月 (2)
阅读排行榜
1. 基于命令行的简单的HTTP客户端和服务器(332)
2. 用netbean开发简单的网页浏览器(214)
3. 生成任意阶的幻方(172)
4. 用Louberel方法生成奇数阶幻方(121)
评论排行榜
1. 用netbean开发简单的网页浏览器(0)
2. 基于命令行的简单的HTTP客户端和服务器(0)
3. 生成任意阶的幻方(0)
4. 用Louberel方法生成奇数阶幻方(0)
常用链接
我的随笔
我的评论
我的参与
统计
随笔 - 4
文章 - 0
评论 - 0
引用 - 0
最新评论
用Louberel方法生成奇数阶幻方
/** */
/**
*
@author
wangliang
*/
import
java.awt.Container;
import
java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import
javax.swing.
*
;
import
java.awt.
*
;
public
class
MagicMatrix
extends
JFrame
implements
ActionListener
{
private
JPanel center;
private
JPanel right;
private
JLabel label;
private
JSpinner level;
private
JButton Louberel;
public
MagicMatrix()
{
center
=
createpanel(
3
);
add(center,BorderLayout.CENTER);
right
=
new
JPanel();
label
=
new
JLabel(
"
选择矩阵阶数
"
);
level
=
new
JSpinner(
new
SpinnerNumberModel(
3
,
3
,
100
,
2
));
Louberel
=
new
JButton(
"
Louberel方法生成
"
);
Louberel.addActionListener(
this
);
right.add(label,BorderLayout.WEST);
right.add(level,BorderLayout.CENTER);
right.add(Louberel,BorderLayout.EAST);
add(right,BorderLayout.NORTH);
setTitle(
"
magic matrix)
"
);
setSize(
340
,
296
);
setVisible(
true
);
}
public
void
actionPerformed(ActionEvent e)
{
if
(e.getSource()
==
Louberel)
{
//
remove(center);
int
levelnumber
=
((Integer)level.getValue()).intValue();
center
=
createpanel(levelnumber);
add(center,BorderLayout.CENTER);
validate();
}
}
/**/
/*
生成魔阵数
*/
private
int
[][] createnumber(
int
n)
{
int
magicmatrix[][]
=
new
int
[n][n];
int
i
=
0
;
int
j
=
n
/
2
;
for
(
int
m
=
1
;m
<=
n
*
n;m
++
)
{
magicmatrix[i][j]
=
m;
int
p
=
(i
-
1
+
n)
%
n;
int
q
=
(j
+
1
+
n)
%
n;
if
(magicmatrix[p][q]
==
0
)
{
i
=
p;
j
=
q;
}
else
i
=
(i
+
1
)
%
n;
}
for
(
int
p
=
0
;p
<
n;p
++
)
{
for
(
int
q
=
0
;q
<
n;q
++
)
{
System.out.print(magicmatrix[p][q]
+
"
"
);
}
System.out.println();
}
return
magicmatrix;
}
/**/
/*
生成相应的面板
*/
private
JPanel createpanel(
int
n)
{
int
matrix[][]
=
createnumber(n);
JPanel tempJPanel
=
new
JPanel();
tempJPanel.setLayout(
new
GridLayout(n,n));
JLabel jlabel[][]
=
new
JLabel[n][n];
for
(
int
i
=
0
;i
<
n;i
++
)
{
for
(
int
j
=
0
;j
<
n;j
++
)
{
jlabel[i][j]
=
new
JLabel(
""
+
matrix[i][j],JLabel.CENTER);
tempJPanel.add(jlabel[i][j]);
}
}
return
tempJPanel;
}
public
static
void
main(String args[])
{
MagicMatrix application
=
new
MagicMatrix();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
posted on 2007-12-08 14:02
王亮
阅读(121)
评论(0)
编辑
收藏
IT新闻
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
Powered by:
BlogJava
Copyright © 王亮