JavaのSwing開発にはかなり新しいImです。私は初期化が行われた後、私が持っているいくつかの値をテーブルに移入することに助けが必要です。初期化後のJTableの変更方法は?
someClass extends JPanel{
private JLabel something;
static private JTable Table;
private JPanel temp;
someClass(){
setLayout(new BorderLayout());
selectSong = new JLabel("some text");
temp = new JPanel();
temp.setLayout(new FlowLayout());
temp.add(something);
Table = new JTable();
//Table.setVisible(false);
add(temp, BorderLayout.NORTH);
add(new JScrollPane(Table), BorderLayout.CENTER);
}
static void populateTable(ArrayList<String> list){
DefaultTableModel dtm = new DefaultTableModel();
dtm.addColumn("title", list.toArray());
Table = new JTable(dtm);
Table.setVisible(true);
new someClass().add(new JScrollPane(Table), BorderLayout.CENTER);
}
}
このクラスはsomeClassと呼ばれ、JPanelのサブクラスです。私はこれのオブジェクトを使用してメインフレーム(ここには表示されていません)に追加しています。これによると、最初はGUIフォームが空のテーブルで作成され、いくつかの操作が完了した後、私はpopulateTable関数を呼び出します。これはテーブルの値を変更してタイトル(titleという名前)を1つ持ち、arraylist後続の行の要素
をfireTableDataChanged使用する必要がありますが、既存のものを移植したい場合は、なぜあなたは、新しいテーブルを作成するのですか? – Aelop
なぜあなたはあなたの 'JTable' 'テーブル'を呼び出しますか?小文字で開始する必要があります。 – Thibstars
1)すぐに役立つようにするには、[MCVE]または[短く、自己完結型の正しい例](http://www.sscce.org/)を投稿してください。 2)一般的なJava命名法(命名規則 - 例えば 'EachWordUpperCaseClass'、' firstWordLowerCaseMethod() '、' firstWordLowerCaseAttribute'が 'UPPER_CASE_CONSTANT'以外の場合)を学び、それを一貫して使用してください。 3)あなたの一般的な質問に対する答えは、「テーブルではなくモデルを変更する」ことです。 4)なぜそれが良いものなのか説明できない限り、「静的」を避けてください。 5)テーブルモデルをクラス属性にしてアクセサーを提供します。 6)これらの点は特別な順序ではありません。 7)do not .. .. –