Java 如何在JTextField中排列2D数组的值

Java 如何在JTextField中排列2D数组的值,java,swing,Java,Swing,我在档案中没有找到我的问题的任何答案 我在设置jtextfield上的5x5数字序列时遇到问题。 这是我的密码 private void btnperformAction(java.awt.event.ActionEvent evt) { int [][] boardOne = defineBoard(); //initializes matrix

我在档案中没有找到我的问题的任何答案
我在设置jtextfield上的5x5数字序列时遇到问题。 这是我的密码

private void btnperformAction(java.awt.event.ActionEvent evt) {                                                           
        int [][] boardOne = defineBoard(); //initializes matrix   
        fillBoard(boardOne); //adds integers values to the matrix
        int i,j;

        for(i = 0; i < boardOne.length; i++){
            for(j = 0; j < boardOne[i].length; j++){
                txtField.setText(txtField.getText() + boardOne[i][j]); 
         }
        }
我在jtextfield上得到的是

5
16
36
52
70
8
26
35
60
73
12
23
-1
51
74
3
27
34
59
68
14
30
47
64
80
如何以5x5格式格式化?
非常感谢您的帮助

您需要使用JTextArea并在每行末尾添加换行符。如果您使用的是JTextField,它就不能支持多行,它只在一行上。 将代码粘贴到任何java文件中并执行main方法

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

class Scratch {
    public static void main(String[] args) {
        JFrame frm = new JFrame();
        JTextArea txtArea = new JTextArea();
        txtArea.setPreferredSize(new Dimension(500,500));
        JButton btn = new JButton("DO ARRANGE");
        btn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int[][] boardOne = new int[][]{
                        {5,   16,  36,  52,  70},
                        {8,   26,  35,  60,  73},
                        {12,  23,  -1,  51,  74},
                        {3,   27,  34,  59,  68},
                        {14,  30,  47,  64,  80}
                };
                int i, j;
                StringBuilder sb = new StringBuilder();
                for (i = 0; i < boardOne.length; i++) {
                    for (j = 0; j < boardOne[i].length; j++) {
                        sb.append(boardOne[i][j]);
                        if (j < boardOne[i].length - 1) {
                            sb.append(" ");
                        }
                    }
                    sb.append("\r\n");
                }
                txtArea.setText(sb.toString());

            }
        });
        frm.getContentPane().setLayout(new BorderLayout());
        frm.getContentPane().add(btn, BorderLayout.NORTH);
        frm.getContentPane().add(txtArea, BorderLayout.CENTER);
        frm.pack();
        frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frm.setVisible(true);
    }
}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
课堂擦伤{
公共静态void main(字符串[]args){
JFrame frm=新JFrame();
JTextArea txtArea=新的JTextArea();
txtArea.setPreferredSize(新尺寸(500500));
JButton btn=新JButton(“安排”);
btn.addActionListener(新ActionListener(){
@凌驾
已执行的公共无效操作(操作事件e){
int[]boardOne=新int[]{
{5,   16,  36,  52,  70},
{8,   26,  35,  60,  73},
{12,  23,  -1,  51,  74},
{3,   27,  34,  59,  68},
{14,  30,  47,  64,  80}
};
int i,j;
StringBuilder sb=新的StringBuilder();
对于(i=0;i
如您之前关于4x4矩阵的问题中所述,您可以使用
StringBuilder
,如下所示

StringBuilder builder = new StringBuilder();
for(int i = 0; i < boardOne.length; i++){
    for(int j = 0; j < boardOne[i].length; j++){
        builder.append(boardOne[i][j]);
        builder.append(" ");
    }
    builder.append("\n");
}

txtField.setText(builder.toString());
StringBuilder=新建StringBuilder();
对于(int i=0;i

请注意,这只是一个简单的空格分隔字符串。它不会使间距均匀化,因此看起来像一个完美的网格,如您的问题所示。对于这种情况,您需要根据位数计算所需的确切空间填充。因此,如果这对您很重要,请选择JTable。

看起来您想要使用的是JTable。但是为了更好的帮助,请尽快发布适当的
StringBuilder builder = new StringBuilder();
for(int i = 0; i < boardOne.length; i++){
    for(int j = 0; j < boardOne[i].length; j++){
        builder.append(boardOne[i][j]);
        builder.append(" ");
    }
    builder.append("\n");
}

txtField.setText(builder.toString());