我想寫一個函數,可以使用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