0

配列を JTable オブジェクトにロードしようとしましたが、うまくいきませんでした。だからここに私の配列があります:

int[][] board = {
    {0, 0, 0, 0, 2, 0, 0, 0, 0},
    {0, 0, 5, 0, 0, 0, 0, 2, 4},      
    {1, 0, 0, 4, 0, 0, 0, 3, 8},
    {0, 0, 0, 6, 0, 0, 0, 0, 7},
    {0, 0, 4, 5, 3, 8, 9, 0, 0},
    {8, 0, 0, 0, 0, 7, 0, 0, 0},
    {7, 4, 0, 0, 0, 6, 0, 0, 1},
    {6, 1, 0, 0, 0, 0, 3, 0, 0},
    {0, 0, 0, 0, 9, 0, 0, 0, 0}

私はhttp://docs.oracle.com/javase/tutorial/uiswing/components/table.htmlに行きました.int 配列を置くためのコンストラクタはありませんが、サブジェクト用にはあります。

どなたか方法をご存知の方、よろしくお願いします!

4

4 に答える 4

2

次のようなことができます。

Integer[][] board = new Integer[][]{
        {0, 0, 0, 0, 2, 0, 0, 0, 0},
        {0, 0, 5, 0, 0, 0, 0, 2, 4},      
        {1, 0, 0, 4, 0, 0, 0, 3, 8},
        {0, 0, 0, 6, 0, 0, 0, 0, 7},
        {0, 0, 4, 5, 3, 8, 9, 0, 0},
        {8, 0, 0, 0, 0, 7, 0, 0, 0},
        {7, 4, 0, 0, 0, 6, 0, 0, 1},
        {6, 1, 0, 0, 0, 0, 3, 0, 0},
        {0, 0, 0, 0, 9, 0, 0, 0, 0}};

new JTable(board, new String[]{"columnName1"...});
于 2012-10-30T12:11:30.043 に答える
2

ここには 2 つの可能性があります。キャストできる代わりに zou を使用できます。これInteger[][]はJTable で機能するか、独自のデータ モデルを記述できます。int[][]Object[][]

最終的に達成したいことに応じて、より適切なものを選択する必要があります。

于 2012-10-30T12:14:04.660 に答える
1

int配列を配列にInteger変更してみてください

于 2012-10-30T12:14:19.293 に答える
1

これを試してください

import javax.swing.*;
import java.awt.*;
public class JTableComponent{
  public static void main(String[] args) 
{
  new JTableComponent();
  }

  public JTableComponent(){
  JFrame frame = new JFrame("Creating JTable Component Example!");
  JPanel panel = new JPanel();
  Integer[][] board = {
            {0, 0, 0, 0, 2, 0, 0, 0, 0},
            {0, 0, 5, 0, 0, 0, 0, 2, 4},      
            {1, 0, 0, 4, 0, 0, 0, 3, 8},
            {0, 0, 0, 6, 0, 0, 0, 0, 7},
            {0, 0, 4, 5, 3, 8, 9, 0, 0},
            {8, 0, 0, 0, 0, 7, 0, 0, 0},
            {7, 4, 0, 0, 0, 6, 0, 0, 1},
            {6, 1, 0, 0, 0, 0, 3, 0, 0},
            {0, 0, 0, 0, 9, 0, 0, 0, 0}};

   String col[] = {"1","2","3","4","5","6","7","8","9"};
  JTable table = new JTable(board,col);
  panel.add(table,BorderLayout.CENTER);

frame.add(panel);
  frame.setSize(800,500);
  frame.setVisible(true);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
于 2012-10-30T12:16:50.457 に答える