我想写一个函数,可以使用GridLayout输入任何大小的矩阵,但我卡住了,因为我找不到合适的方式来提取JTextField值来填充'mat'var(参见下面的FIXME)。Java:使用GridLayout输入矩阵
/**
* @mat: matrix declared in main (e.g: mat[][] = new int[3][3];)
* @rows: number of matrix rows (e.g: int rows = 3;)
* @columns: number of matrix columns (e.g: int columns = 3;)
*/
public static int[][] inputMatrix(int[][] mat, int rows, int columns)
{
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(rows,columns));
for (int a=0; a<(rows*columns); a++)
{
panel.add(new JTextField(a));
}
if (JOptionPane.showConfirmDialog(null, panel, "Enter the matrix", JOptionPane.OK_CANCEL_OPTION)
== JOptionPane.OK_OPTION)
{
for(int a=0; a<(rows*columns); a++){
for(int b=0; b<rows; b++){
for(int c=0; c<columns; c++){
/* FIXME: find how to extract JTextField values. */
mat[b][c] = JTextField.a.getText();
}
}
}
}
return mat;
}
在此先感谢您的帮助!
嗨,JTable的方式看起来不错,你可以详细一点吗? 我会看看另一个。 ty – user1847810
@ user1847810从[此链接]开始(http://docs.oracle.com/javase/tutorial/uiswing/components/table.html)。所有Swing组件在Oracle/Sun都有相应的教程,这几乎都是一个非常好的起点。 –
@GuillaumePolet会做,谢谢! – user1847810