2017-07-12 19 views
0

http://www.java2s.com/Code/Java/Swing-Components/RadioButtonTableExample2.htm のようなラジオボタングループを自分のフォームに追加しようとしていますが、上のチュートリアルに従っていますが、DefaultTableModelではなくAbstractTableModelを使用しています。ここ は、それがcolomunにエラー何も表示されないdoesnot、私のコードです:事前にjtable内のcoloumのラジオボタングループが表示されない

StudentTableModel model = new StudentTableModel(studentList); 

    // JScrollPane scrollPane = new JScrollPane(table); 
    final JScrollPane scrollPane = new JScrollPane(
      table, 
      JScrollPane.VERTICAL_SCROLLBAR_NEVER, 
      JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
    Dimension d = table.getPreferredSize(); 
    scrollPane.setPreferredSize(
      new Dimension(d.width,table.getRowHeight()*rows)); 

    // code for radio buttons 
    String[] answer = { "A", "B", "C" }; 
    TableColumnModel columnModel = table.getColumnModel(); 
    for (int tc = 7; tc < table.getColumnCount(); tc++) 
    { 
    columnModel.getColumn(tc).setCellRenderer(
      new MainClass().new RadioButtonRenderer(answer)); 
    columnModel.getColumn(tc).setCellEditor(
      new MainClass().new RadioButtonEditor(new JCheckBox(), new MainClass().new RadioButtonPanel(
        answer))); 
    } 
    table.setModel(model); 

    frame.getContentPane().add(scrollPane, BorderLayout.CENTER); 
    frame.getContentPane().add(navigation, BorderLayout.SOUTH); 
    frame.pack(); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setVisible(true); 

感謝を!

答えて

1

モデルを設定する前にレンダラーとエディターを設定しようとしています。したがって、レンダラー/エディターを設定する列はありません。モデルを最初に設定する必要があります。列を作成するだけです。モデルを作成してもテーブルにリンクされない場合、テーブルには列の数が事前に分かりません。

は、おそらくあなたは...実際には、引数としてモデルを持つテーブルを作成し、

StudentTableModel model = new StudentTableModel(studentList); 
table.setModel(model); // moved from below 

// JScrollPane scrollPane = new JScrollPane(table); 
... 

次のされている例のようなものがそうさ

ヒントをしたい:なぜnew MainClass()new MainClass().new RadioButtonRenderer(...などで?あなたは本当に新しいMainClassがほしいですか?これらのクラスをstaticと宣言し、new MainClass()

を削除してください
関連する問題