Java 在JTextArea中输出一个矩阵
我试图在JTextArea中输出一个矩阵,但在将矩阵转换为字符串以输出它时遇到问题。。。 我的全班同学是:Java 在JTextArea中输出一个矩阵,java,Java,我试图在JTextArea中输出一个矩阵,但在将矩阵转换为字符串以输出它时遇到问题。。。 我的全班同学是: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import j
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.*;
class ConvertMatrix extends JFrame implements ActionListener
{
JLabel rows = new JLabel ("Numri i rreshtave"+'\n');
JTextField inrows = new JTextField (5);
JLabel columns = new JLabel ("Numri i kolonave eshte");
JTextField incolumns = new JTextField (5);
JLabel matrix = new JLabel("Matrica ka formen");
JTextField inmatrix = new JTextField(30);
JButton mat = new JButton("Afisho matricen");
JTextArea matric = new JTextArea(10,21);
int x;
int y;
int[][] matrica = new int [x][y];
public ConvertMatrix ()
{
super ("Matrica e konvertuar");
setSize(300, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
Container content = getContentPane();
content.setLayout(new FlowLayout ());
content.setBackground(Color.pink);
content.add(rows);
rows.setForeground(Color.blue);
content.add(inrows);
content.add(columns);
columns.setForeground(Color.red);
content.add(incolumns);
content.add(matrix);
content.add(inmatrix);
matrix.setForeground(Color.gray );
content.add(mat);
content.add(matric);
mat.addActionListener(this);
setContentPane(content);
}
public void mbushMatricen(int x, int y){
for (int i =0; i<x; i++)
for (int j=0; j<y; j++)
matrica[i][j]=(int) ((double) Math.random()*10);
}
public void actionPerformed(ActionEvent event)
{
String rresht = inrows.getText();
int rreshtii = Integer.parseInt(rresht);//kthimi i stringut ne integer
String shtyll = incolumns.getText();
int shtylle = Integer.parseInt(shtyll);
mbushMatricen(rreshtii,shtylle);
String matricaString = "";
for( int i=0; i<rreshtii; i++){
for( int j=0; j<shtylle; j++){
matricaString += matrica[i][j] + " ";
}
matricaString += "\n";
}
matric.setText(matricaString);
}
public static void main(String []args)
{ ConvertMatrix m = new ConvertMatrix();
}
}
the problem is that it gives me these error:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0
at ConvertMatrix.mbushMatricen(ConvertMatrix.java:87)
at ConvertMatrix.actionPerformed(ConvertMatrix.java:98)
但是对我说:类型字符中的toString(char)方法不适用于参数(int)
你能帮我一下吗?我是java的初学者这很有效:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import java.awt.*;
public class ConvertMatrix extends JFrame implements ActionListener{
JLabel rows = new JLabel ("Numri i rreshtave"+'\n');
JTextField inrows = new JTextField (5);
JLabel columns = new JLabel ("Numri i kolonave eshte");
JTextField incolumns = new JTextField (5);
JLabel matrix = new JLabel("Matrica ka formen");
JTextField inmatrix = new JTextField(30);
JButton mat = new JButton("Afisho matricen");
JTextArea matric = new JTextArea(10,21);
int x;
int y;
double[][] matrica;
public ConvertMatrix (){
super ("Matrica e konvertuar");
setSize(300, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
Container content = getContentPane();
content.setLayout(new FlowLayout ());
content.setBackground(Color.pink);
content.add(rows);
rows.setForeground(Color.blue);
content.add(inrows);
content.add(columns);
columns.setForeground(Color.red);
content.add(incolumns);
content.add(matrix);
content.add(inmatrix);
matrix.setForeground(Color.gray );
content.add(mat);
content.add(matric);
mat.addActionListener(this);
setContentPane(content);
}
public void mbushMatricen(int x, int y){
matrica = new double[x][y];
for (int i =0; i<x; i++){
for (int j=0; j<y; j++){
matrica[i][j]=((double) Math.random()*10);
}
}
}
public void actionPerformed(ActionEvent event){
String rresht = inrows.getText();
int rreshtii = Integer.parseInt(rresht);//kthimi i stringut ne integer
String shtyll = incolumns.getText();
int shtylle = Integer.parseInt(shtyll);
mbushMatricen(rreshtii,shtylle);
String matricaString = "";
for(int i=0; i<rreshtii; i++){
for( int j=0; j<shtylle; j++){
matricaString += matrica[i][j] + " ";
}
matricaString += "\n";
}
matric.setText(matricaString);
}
public static void main(String []args){
ConvertMatrix m = new ConvertMatrix();
}
}
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入javax.swing.ButtonGroup;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JRadioButton;
导入javax.swing.JTextArea;
导入javax.swing.JTextField;
导入java.awt.*;
公共类ConvertMatrix扩展JFrame实现ActionListener{
JLabel行=新JLabel(“Numri i rreshtave”+'\n');
JTextField inrows=新的JTextField(5);
JLabel columns=新的JLabel(“Numri i kolonave eshte”);
JTextField incolumns=新的JTextField(5);
JLabel矩阵=新JLabel(“Matrica ka formen”);
JTextField inmatrix=新的JTextField(30);
JButton mat=新JButton(“Afisho matricen”);
JTextArea矩阵=新的JTextArea(10,21);
int x;
int-y;
双[]矩阵;
公共矩阵(){
超级(“Matrica e konvertuar”);
设置大小(300250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(真);
容器内容=getContentPane();
content.setLayout(新的FlowLayout());
内容。挫折背景(颜色。粉红色);
content.add(行);
行。设置前景(颜色为蓝色);
内容。添加(inrows);
内容。添加(列);
columns.setForeground(颜色为红色);
内容。添加(incolumns);
内容。添加(矩阵);
内容。添加(inmatrix);
矩阵。设置前景(颜色为灰色);
内容。添加(mat);
内容。添加(矩阵);
mat.addActionListener(本);
setContentPane(内容);
}
公共空域矩阵(整数x,整数y){
矩阵=新的双[x][y];
对于(int i=0;i您应该使用DecimalFormat类
import java.text.DecimalFormat;
formatter = new DecimalFormat("#0");
matricaString += formatter.format(matrica[i][j]) + " ";
但是你能帮我吗?你能告诉我我能做什么吗…在这两种情况下我都有问题…请查看此链接[你考虑过使用JTable
吗?“类型字符中的字符串(char)方法不适用于参数(int)”建议您使用Integer.toString
而不是代替我…Character.toString(ch)
接受一个字符,并总是返回一个长度为1的字符串,其中一个字符就是您给它的字符。非常感谢…您帮了我这么多…但是有没有办法将数字转换为矩阵整数…因为我不想让它们加倍
import java.text.DecimalFormat;
formatter = new DecimalFormat("#0");
matricaString += formatter.format(matrica[i][j]) + " ";