Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建查找矩阵逆矩阵的GUI_Java_User Interface_Matrix_Matrix Inverse - Fatal编程技术网

Java 创建查找矩阵逆矩阵的GUI

Java 创建查找矩阵逆矩阵的GUI,java,user-interface,matrix,matrix-inverse,Java,User Interface,Matrix,Matrix Inverse,在JCreator中,我需要创建一个允许我查找矩阵求逆的程序,我以前使用过一个代码来查找矩阵求逆,但在尝试获取int GUI格式时遇到了困难 这是我到目前为止的GUI概要 *Matrix * */ import java.awt.*; // Java Library import javax.swing.*; // Java Library import java.awt.event.*; // Java Library public cla

在JCreator中,我需要创建一个允许我查找矩阵求逆的程序,我以前使用过一个代码来查找矩阵求逆,但在尝试获取int GUI格式时遇到了困难

这是我到目前为止的GUI概要

 *Matrix
 *
 */


import java.awt.*;      //  Java Library
import javax.swing.*;       //  Java Library
import java.awt.event.*;        //  Java Library

public class Matrix extends JFrame{ //  class

private JTextField jtfSize;     //  Text field
private JTextField jtfElements;     //  Text field
private JTextField jtfResult;       //  Text field
private JLabel jlblSize;        //  Label
private JLabel jlblElements;        //  Label
private JLabel jblblResult;     //  Lablel
private JPanel entryPanel;      //  Panel
private JPanel buttonPanel;     //  Panel
private JButton jbtCalculate;       // Button

public static void main (String[] args ){       //  main
    Matrix Frame = new Matrix();        // Frame
    frame.setTitle("Matrix Inverse Calcualator");       //  Frame Name
    frame.setSize ( 500, 500 );     //  Frame Size
    frame.setLocation (400, 400);       //  Frame Location on Screen
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);      //  Set Close Option
    frame.setVisible(true);     // 

}

    public Matrix(){    //  

    jlblSize = new JLabel ("Matrix Size:", JLabel.CENTER );     //  Centre Label
    jlblElements = new JLabel ("Matrix Elements: ", JLabel.CENTER );        //  Centre Lable 
    jlblResult = new JLabel ("RESULT: ", JLabel.CENTER );       // Centre Jlabel
    jtfSize = new JTextField(12);       // Text Field
    jtfElements = new JTextField(12);       // Text field 12 font
    jtfResult = new JTextField(12);     // Text Field 12 front
    entryPanel = new JPanel();      // Panel

    jtfResult.setEditable( false );     // make RESULT Field uneditable

    entryPanel.setLayout (new GridLayout (3,2) );       // Set layout manager of Panel

    entryPanel.add( jlblSize );     //  Add component to Panel
    entryPanel.add( jtfSize );      //  Add component to Panel
    entryPanel.add( jlblElements );     //  Add component to Panel
    entryPanel.add( jtfElements );      //  Add component to Panel
    entryPanel.add( jlblResult );       //  Add component to Panel
    entryPanel.add( jtfResult );        //  Add component to Panel

    add(entryPanel, BorderLayout.CENTER);       // add entryPanel to frame

    jbtCalculate = new JButton("Calculate");        //  Add button and insert text for button
    buttonPanel = new JPanel();         //  Creates Panel for Button

    buttonPanel.add(jbtCalculate);      // insert Calculate button to panel

    add( buttonPanel, BorderLayout.SOUTH);      // Panel layout

    jbtCalculate.addMouseListener(new List_ButtonCAL());        //  

    }
        private class list_ButtonCAL implements MouseListener{      //  

            public void mouseClicked (MouseEvent event){        // 

                double x=Double.parseDouble(jtfSize.getText());
                double y=String.parseDouble(jtfElements.getText());

                jtfResult.setText(String.);

            }
        }

}
这是我正在编写的代码, 我很难弄清楚如何将其放入GUI格式中

import java.util.Scanner; // Import Scanner library

class matrixinverse { // start of class
public static void main(String argv[]){ // start of main
    Scanner input = new Scanner(System.in); // input Scanner library
    System.out.println("Enter the dimension of square matrix: "); // Ouput on screen
    int n = input.nextInt(); // user inputs figure
    double a[][]= new double[n][n]; //
    System.out.println("Enter the elements of matrix: "); // Ouput on screen
    for(int i=0; i<n; i++) // 
        for(int j=0; j<n; j++)
            a[i][j] = input.nextDouble(); //

    double d[][] = invert(a); //

    System.out.println("The inverse is: "); // Ooutput on screen
    for (int i=0; i<n; ++i){ //
        for (int j=0; j<n; ++j)  { //
            System.out.print(d[i][j]+"  "); //
        } //

        System.out.println(); //
    } //
    input.close(); //
}   

public static double[][] invert(double a[][]){ //
    int n = a.length; //
    double x[][] = new double[n][n]; //
    double b[][] = new double[n][n]; //
    int index[] = new int[n]; //
    for (int i=0; i<n; ++i)  //
        b[i][i] = 1; // 
    gaussian(a, index); //
    for (int i=0; i<n-1; ++i) //
        for (int j=i+1; j<n; ++j) //
            for (int k=0; k<n; ++k) //
                b[index[j]][k]
                        -= a[index[j]][i]*b[index[i]][k]; //

    for (int i=0; i<n; ++i){ //
        x[n-1][i] = b[index[n-1]][i]/a[index[n-1]][n-1]; //
        for (int j=n-2; j>=0; --j){
            x[j][i] = b[index[j]][i]; //
            for (int k=j+1; k<n; ++k) {
                x[j][i] -= a[index[j]][k]*x[k][i]; //
            }
            x[j][i] /= a[index[j]][j];
        }
    }
    return x;
} //

public static void gaussian(double a[][], int index[]){
    int n = index.length; //
    double c[] = new double[n]; //
     for (int i=0; i<n; ++i) 
        index[i] = i;

    for (int i=0; i<n; ++i){
        double c1 = 0;
        for (int j=0; j<n; ++j){
            double c0 = Math.abs(a[i][j]);
            if (c0 > c1) c1 = c0;
        }
        c[i] = c1;
    }

    int k = 0;
    for (int j=0; j<n-1; ++j){
        double pi1 = 0;
        for (int i=j; i<n; ++i){
            double pi0 = Math.abs(a[index[i]][j]);
            pi0 /= c[index[i]];
            if (pi0 > pi1){
                pi1 = pi0;
                k = i;
            }
        }

        int itmp = index[j];
        index[j] = index[k];
        index[k] = itmp;
        for (int i=j+1; i<n; ++i)   
        {
            double pj = a[index[i]][j]/a[index[j]][j];

            a[index[i]][j] = pj;

            for (int l=j+1; l<n; ++l)
                a[index[i]][l] -= pj*a[index[j]][l];
        }
    }
 }
}
import java.util.Scanner;//导入扫描仪库
类matrixinverse{//类的开始
公共静态void main(字符串argv[]){//main的开头
扫描仪输入=新扫描仪(System.in);//输入扫描仪库
System.out.println(“输入方阵的尺寸:”;//在屏幕上输出
int n=input.nextInt();//用户输入数字
双a[][]=新双[n][n]//
System.out.println(“输入矩阵的元素:”;//在屏幕上输出

对于(int i=0;i我建议研究MVC(模型-视图-控制器)或其他类型的GUI设置。由于这是一个相当简单的项目,MVC可能有点过火,但其基础是有一个单独的类来运行计算,接收信息并将其发送到GUI(视图)。在您的情况下,当按下jbtCalculate时,另一个类将从GUI中读取信息,然后在将数据发送回之前进行计算。如果您对MVC有任何疑问,上的一些答案可能会帮助您开始。

GUI永远不会找到矩阵的倒数。GUI可以让您输入矩阵;它们可以播放矩阵的倒数;但是矩阵的倒数应该在非GUI代码中完成。这是大学的作业。我必须以GUI格式完成