如何将字符串矩阵转换以在JTextarea中输出



我是Java的初学者,我需要帮助。我正在尝试在Jtextarea中打印一个矩阵。但是我不知道如何将矩阵转换为字符串以在Jtextarea中打印。我正在尝试使用matrica.get(i),但我不知道如何将其用于矩阵。还是还有其他可能性?有人可以帮我吗?

在这里我填充矩阵:

public  void fillMatricen(){
    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 row1 = inrows.getText();
        int row2 = Integer.parseInt(row1);
        String col1 = incolumns.getText();
        int col2 = Integer.parseInt(col1);
        fillMatricen(); 
        for( int i=0; i<row2; i++){
            for( int j=0; j<col2; j++){
                matricaString= matricaString + matrica.get(i);
            }
        }
        matric.setText(matricaString);
    }

替换此行

matricaString = matricaString + matrica.get(i);

matricaString += matrica[i][j];

出现在fillMatricen中,matrica是数组的数组。因此,您不能使用任何get方法从matrica访问元素。

我不知道您的数据类型是什么,但是Java Collection通常具有toString()方法,可以自行打印自己。我个人不喜欢显示该输出,因为它具有一堆对人类不吸引人的括号。

一种简单的方法是使用String.Format(FormatString,obj)循环浏览数据;并将这些件添加到StringBuffer中(使用StringBuffer.Append())。然后在StringBuffer上进行to绳以将其放入JTEXTAREA中。您甚至可以将HTML标签添加到文本中,以便以表格形式显示您的数据。

尝试以下:

public void actionPerformed(ActionEvent event){
    String row1 = inrows.getText();
    int row2 = Integer.parseInt(row1);
    String col1 = incolumns.getText();
    int col2 = Integer.parseInt(col1);
    fillMatricen(row2, col2);
    String matricaString = '';
    for( int i=0; i<row2; i++){
        for( int j=0; j<col2; j++){
            matricaString += matrica[i][j] + "  ";
        }
        matricaString += "n"
    }
    matric.setText(matricaString);
}
public  void fillMatricen(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);
        }
    }
}

这效果很好:

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

最新更新