littlefermat

          用Louberel方法生成奇數(shù)階幻方

           

          /**
           * 
          @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("選擇矩陣階數(shù)");
                  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();
                  }

              }

              
              
          /*生成魔陣數(shù)*/
              
          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;
                  
              }

              
              
          /*生成相應(yīng)的面板*/
              
          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 littlefermat 閱讀(5284) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 和田县| 黎平县| 咸宁市| 南乐县| 马山县| 贡山| 正镶白旗| 简阳市| 湖南省| 民丰县| 武平县| 信丰县| 汪清县| 屏山县| 铜川市| 庆阳市| 额敏县| 稷山县| 邢台市| 高邮市| 封丘县| 兴宁市| 利辛县| 丰镇市| 邢台市| 云安县| 锡林浩特市| 宾阳县| 玉环县| 乌拉特中旗| 宁南县| 黄山市| 湘潭市| 横山县| 报价| 泸溪县| 板桥市| 本溪市| 扶沟县| 四会市| 和平县|