2017-04-25 16 views
0

私は2つのテーブルを持っていると私はtable_4するtable_3で特定のセルから値を追加する必要があります..しかし、その動作していません。助けてください?エラー:java.lang.ArrayIndexOutOfBoundsException:0> = 0

コード:

JTable table_3 = new JTable(TableModel2); 
final JTable table_4 = new JTable(TableModel3); 


JButton btnAdd = new JButton("add"); 
btnAdd.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
    int row = table_3.getSelectedRow(); 
    int column = table_3.getSelectedColumn(); 
    Object selectedPlanet = TableModel2.getValueAt(row, column); 
    int columnContainingPlanets = 0; 

    for (int index = columnContainingPlanets; index < TableModel3.getRowCount();index ++){ 
      Object value = TableModel3.getValueAt(index, columnContainingPlanets) ; 
      if (value == selectedPlanet) { 
      JOptionPane.showMessageDialog(panel_10,"This item was selected ,Please select another item"); 
      return; }} 

    TableModel3.addRow(new Object[] { selectedPlanet }); 
      } 
     }); 
+1

変数名は大文字で始めるべきではありません。いくつかは正しい、他は正しくありません。一貫してください!変数名も説明的でなければなりません。 「3と4」はあまり説明的ではありません。モデル名はさらに悪い( "2と3")。少なくともモデル名はテーブル名と一致する必要がありますので、どのモデルがどのテーブルに属しているかを知る必要があります。なぜテーブルが更新されていないのかわかりません。デバッグ文を追加して、コードが実行されたことを確認しましたか?問題があることを示す適切な[mcve]を投稿するために、さらに助けが必要な場合。また、コードが適切にフォーマットされていて、読み取り可能であることを確認してください。 – camickr

+0

ええ、それは正しいですが、実行中のコードには影響しません。 –

+0

まだあなたの[mcve]を待っています。 – camickr

答えて

1

はまだあなたのMinimal, Complete, and Verifiable Example(MCVE)を待っています。あなたが投稿したコードに問題があると思いますか?問題が解決するまで、すべての質問には、問題を簡単に説明して、問題をより簡単にデバッグしようとしたことが証明されているはずです。

問題を引き起こしたコードの行を表示せずにエラーメッセージを投稿するポイントは何ですか?再びMCVEを投稿する別の理由。あなたは、その問題を解決するためにどのような情報が必要であるかという質問に答えるまでは分かりません。

私たちができることはすべて推測です。

フォーラムへの初心者として、あなたは1つの推測を得る。将来の質問にはMCVE

私は、tableModel3には列がないので、データの単一の列を含むモデルに行を追加することはできません。

ので、モデルは何かのようなコードを使用して作成する必要があります。

String[] columnNames = { "Planets" }; 
DefaultTableModel tableModel3 = new DefaultTableMNodel(columnNames, 0); 
+0

あなたの推測は正しいです、そして、申し訳ありません、私はあなたのアドバイスで次回に働きます。あなたの努力のために余裕.. –

関連する問題