|
|
| 作者:王亮 来源:beginner.blogjava.net 发布时间:2007-12-11 10:57:57.787 |
|
|
 /** *//**
* @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);
}

}


|
|
|