我如何将 Java 中的二维数组打印到 Swing / JOptionPane 中的 window
How could I print a 2D array in Java to a window in Swing / JOptionPane
我真的很难过。我无法在任何地方找到如何在 JOptionPane 中将此 table 打印为 window(如 ShowMessageDialog),就像在控制台 the desired output
中打印一样
这是我的代码:
import javax.swing.JOptionPane;
import java.util.*;
public class StarWars {
public static void main(String[] args) {
String [][] gridPlayer = new String [6][6];
Scanner kb = new Scanner (System.in);
String [] rows = {"A", "B", "C", "D", "E", "F", "G", "H"};
for (int i = 0; i < 6; i++){
for (int j = 0; j < 6; j++){
gridPlayer[i][j] = " ~ ";
}
}
System.out.print(" ");
for (int i = 0; i < 6; i++){
System.out.print(" " + rows[i] + " ");
}
System.out.println();
for (int i = 0; i < 6; i++){
System.out.print(" " + i);
for (int j = 0; j < 6; j++){
System.out.print(gridPlayer[i][j]);
}
System.out.println();
}
JOptionPane.showMessageDialog(null, for (int i));
}
}
如果有人知道如何执行此操作,我们将非常感谢您的帮助。
P.S。 StarWars class 存在,因为它是家庭作业 ;)
有许多可能的方法,这里是一个:您可以尝试使用 StringBuilder
并使用 html 标签将所有内容放入 JLabel
中:
StringBuilder sb = new StringBuilder();
sb.append("<html>");
String [][] gridPlayer = new String [6][6];
Scanner kb = new Scanner (System.in);
String [] rows = {"A", "B", "C", "D", "E", "F", "G", "H"};
for (int i = 0; i < 6; i++){
for (int j = 0; j < 6; j++){
gridPlayer[i][j] = " ~ ";
}
}
sb.append("  ");
for (int i = 0; i < 6; i++){
sb.append(" " + rows[i] + " ");
}
sb.append("<br>");
for (int i = 0; i < 6; i++){
sb.append(" " + i);
for (int j = 0; j < 6; j++){
sb.append(gridPlayer[i][j]);
}
sb.append("<br>");
}
sb.append("</html>");
JOptionPane.showMessageDialog(null, new JLabel(sb.toString()));
我真的很难过。我无法在任何地方找到如何在 JOptionPane 中将此 table 打印为 window(如 ShowMessageDialog),就像在控制台 the desired output
中打印一样这是我的代码:
import javax.swing.JOptionPane;
import java.util.*;
public class StarWars {
public static void main(String[] args) {
String [][] gridPlayer = new String [6][6];
Scanner kb = new Scanner (System.in);
String [] rows = {"A", "B", "C", "D", "E", "F", "G", "H"};
for (int i = 0; i < 6; i++){
for (int j = 0; j < 6; j++){
gridPlayer[i][j] = " ~ ";
}
}
System.out.print(" ");
for (int i = 0; i < 6; i++){
System.out.print(" " + rows[i] + " ");
}
System.out.println();
for (int i = 0; i < 6; i++){
System.out.print(" " + i);
for (int j = 0; j < 6; j++){
System.out.print(gridPlayer[i][j]);
}
System.out.println();
}
JOptionPane.showMessageDialog(null, for (int i));
}
}
如果有人知道如何执行此操作,我们将非常感谢您的帮助。
P.S。 StarWars class 存在,因为它是家庭作业 ;)
有许多可能的方法,这里是一个:您可以尝试使用 StringBuilder
并使用 html 标签将所有内容放入 JLabel
中:
StringBuilder sb = new StringBuilder();
sb.append("<html>");
String [][] gridPlayer = new String [6][6];
Scanner kb = new Scanner (System.in);
String [] rows = {"A", "B", "C", "D", "E", "F", "G", "H"};
for (int i = 0; i < 6; i++){
for (int j = 0; j < 6; j++){
gridPlayer[i][j] = " ~ ";
}
}
sb.append("  ");
for (int i = 0; i < 6; i++){
sb.append(" " + rows[i] + " ");
}
sb.append("<br>");
for (int i = 0; i < 6; i++){
sb.append(" " + i);
for (int j = 0; j < 6; j++){
sb.append(gridPlayer[i][j]);
}
sb.append("<br>");
}
sb.append("</html>");
JOptionPane.showMessageDialog(null, new JLabel(sb.toString()));