gpt4 book ai didi

java - 如何根据多个变量制作随机二维数组?

转载 作者:行者123 更新时间:2023-12-01 16:53:00 25 4
gpt4 key购买 nike

我现在有代码可以接受用户输入来自定义 JTextArea 的行数和列数,我想使用相同的变量来创建一个二维数组,其中填充随机值,范围从 0 到 2,我尝试创建一个嵌套的 for 循环但最终失败了。我在网上找不到任何可以回答如何执行此操作的内容。任何帮助或建议表示赞赏。以下是我现在所拥有的一切,没有任何东西可以做到这一点。

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Main {

int tf1r = 0;
int tf2c = 0;
String space = ", ";
JPanel panel;
JLabel label;
JTextField tf1, tf2;
JButton set, reset;
JTextArea ta;


public static void main(String[] args) {

// Frame
JFrame frame = new JFrame("Mapped Array");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
frame.setResizable(false);

// Menu Bar
JMenuBar mb = new JMenuBar();
JMenu m1 = new JMenu("EXPORT");
JMenu m2 = new JMenu("HELP");
mb.add(m1);
mb.add(m2);
JMenuItem m11 = new JMenuItem("TXT");
JMenuItem m22 = new JMenuItem("BAT");
m1.add(m11);
m1.add(m22);

// Panel Bottom and Components
JPanel panel = new JPanel();
JLabel label = new JLabel("Enter Rows and Columns");
JTextField tf1 = new JTextField(10);
JTextField tf2 = new JTextField(10);
JButton set = new JButton("SET");
JButton reset = new JButton("RESET");
panel.add(label);
panel.add(tf1);
panel.add(tf2);
panel.add(set);
panel.add(reset);

// Center TextArea
JTextArea ta = new JTextArea();

// Components to Frame
frame.getContentPane().add(BorderLayout.SOUTH, panel);
frame.getContentPane().add(BorderLayout.NORTH, mb);
frame.getContentPane().add(BorderLayout.CENTER, ta);
frame.setVisible(true);

//Sets Text
set.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String space = ", ";
String rows = tf1.getText();
String columns = tf2.getText();
int tf1r = Integer.parseInt(rows);
int tf2c = Integer.parseInt(columns);

ta.setRows(tf1r);
ta.setColumns(tf2c);



System.out.println("rows: "+tf1r+" columns: "+tf2c+" TaR: "+ta.getRows()+" TaC: "+ta.getColumns());

ta.setText(rows+space+columns+"\n100, 100\n");
}
});

//Resets Text
reset.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ta.setText("");
}
});
}
}

最佳答案

这应该有效:

tf1r = Integer.parseInt(rows);
tf2c = Integer.parseInt(columns);

Random random = new Random();
int[][] values = new int[tf1r][tf2c];

for(int i = 0; i < values.length; i++)
for(int j = 0; j < values[i].length; j++)
values[i][j] = random.nextInt(3);

关于java - 如何根据多个变量制作随机二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61651722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com