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());