程序要求用户在终端中输入:行数和列数。在获得上述输入后,应该使用提供的numOfRows和numOfColumns的网格布局生成一个矩阵。
然而,有时它并不真正按照预期的方式工作。例如,输入numOfRows为1 & numOfColumns为5将不会创建一个1行5列的矩阵,而是创建一个1行6列的矩阵。
下面是我的代码。
import java.awt.*;
import java.io.PrintStream;
import java.text.*;
import java.util.*;
import javax.swing.*;
public class Main extends JFrame {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
System.out.println("Enter num of rows for matrix:");
int numOfRow = kb.nextInt();
kb.nextLine();
System.out.println("Enter num of columns for matrix:");
int numOfColumns = kb.nextInt();
kb.nextLine();
JFrame frame = new JFrame();
frame.setLayout(new GridLayout(numOfRow, numOfColumns));
frame.setLocation(0,0);
for(int i=0; i<numOfRow; i++){
frame.add(new TextField());
}
for(int i=0; i<numOfColumns; i++){
frame.add(new TextField());
}
frame.pack();
frame.setVisible(true);
}
}
任何帮助或见解都是真诚的感谢。
2条答案
按热度按时间q3qa4bjr1#
您新增的文字字段比您应该新增的要多。您新增了1列加上5栏,总共是6个。如果您想要矩形排列的项目数目,请将长度乘以深度,以取得总数。
删除另一个for循环。
6qqygrtg2#
您的for循环应该是嵌套的,而不是连续的: