Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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 按下按钮时如何显示2D矩阵?_Java_Swing_Matrix_2d - Fatal编程技术网

Java 按下按钮时如何显示2D矩阵?

Java 按下按钮时如何显示2D矩阵?,java,swing,matrix,2d,Java,Swing,Matrix,2d,我试图在填充两个文本字段行和列时显示二维矩阵,但在填充这两个文本字段并按下“绘制”按钮时,我不知道如何打印二维矩阵 这是我的代码: import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; public class InputOutput extends JFrame{ JTextField mtf; JTextField ntf; JButton button; public

我试图在填充两个文本字段行和列时显示二维矩阵,但在填充这两个文本字段并按下“绘制”按钮时,我不知道如何打印二维矩阵

这是我的代码:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

import java.io.*;

public class InputOutput extends JFrame{

JTextField mtf;
JTextField ntf;
JButton button;

public InputOutput(){

    setLayout (new FlowLayout ());



    mtf = new JTextField(10);
    ntf = new JTextField(10);
    add(mtf);
    add(ntf);

    button = new JButton("Dibujar");
    add(button);

    event e = new event();

    button.addActionListener(e);

}

public class Cuadricula extends JComponent{

    final int height = 30;
    final int width = 30;
    int posicionx=0;
    int posiciony=0;


     public Cuadricula(int x,int y){             
         setBounds(x,y,width+1, height+1);  

     }

@Override
    public void paintComponent (Graphics g){       

        super.paintComponent(g);           
        g.drawRect(0,0,width,height); 
    }
}



public class event implements ActionListener{

    public void actionPerformed(ActionEvent e){

        String Sm = mtf.getText();
        String Sn = ntf.getText();

        int m = Integer.parseInt(Sm);
        int n = Integer.parseInt(Sn);

        Cuadricula casillas[] = new Cuadricula[m*n];

        int i,j;
        int k = 0;

        while (k < m*n){
            for(i=0; i < m; i++){
                for(j=0; j < n; j++){

                    casillas[k] = new Cuadricula(i*30,j*30);
                    k++;
                }
            } 
        }


        //HERE IS WHAT I DON'T KNOW HOW TO DO

        for(int i = 0; i < 16; i++){

            gui.getContentPane().add(casillas[i]);
        }        
    }
}

public static void main(String[] args){

    InputOutput gui = new InputOutput();
    gui.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    gui.setSize(300,150);
    gui.setTitle("Writer");
    gui.setVisible(true);



    gui.getContentPane().setLayout(null);

}

}

我假设矩阵是CUADRILLA类绘制的?避免使用空布局,像素完美布局在现代ui设计中是一种错觉。影响零部件单个尺寸的因素太多,您无法控制。Swing的设计初衷是与布局管理器一起工作,丢弃这些布局管理器将导致无止境的问题,您将花费越来越多的时间来纠正这些问题。也可以查看更多详细信息感谢程序员。我不知道如何在Cuadricula类中绘制矩阵,因为Cuadricula类不知道gui元素,这就是问题所在…是的,但如果你能让它工作,输出就应该在那里是这样的是吗?