[英]Loading Data from ArrayList Unto a DefaultTableModel
請我嘗試將存儲在ArrayList中的數據加載到DefaultTableModel,但我沒有看到數據出現。 請查看下面的代碼。
// this is to save to the array.
ArrayList<MusicEdit> musiclist = new ArrayList<MusicEdit>();
code = Integer.parseInt(txtAddMusicCode.getText());
title = txtAddMusicTitle.getText();
artist = txtAddMusicArtist.getText();
price = Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
JOptionPane.showMessageDialog(null, "Added Successfully");
並加載表模型,這就是我所擁有的。
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
public void loadAll(){
for (Object s : musiclist) {
dtm.addRow( (Object[]) s);
}
tblMusic.setModel(dtm);
}
public DisplayMusicCD() {
initComponents();
loadAll();
}
請問我在這里缺少什么,表加載但只顯示列名但數據沒有顯示。 我嘗試使用AbstractTableModel,但我沒有辦法解決它。 所以現在不是一個選擇。 提前致謝。
public class MusicEdit {
public ArrayList<MusicEdit> getMusiclist() {
ArrayList<MusicEdit> musiclist = new ArrayList<MusicEdit>();
code = Integer.parseInt(txtAddMusicCode.getText());
title = txtAddMusicTitle.getText();
artist = txtAddMusicArtist.getText();
price = Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
return musiclist;
}
}
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
MusicEdit musicEdit = new MusicEdit ();
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist = musicEdit.getMusiclist();
public void loadAll(){
for (Object s : musiclist) {
dtm.addRow( (Object[]) s);
}
tblMusic.setModel(dtm);
}
public DisplayMusicCD() {
initComponents();
loadAll();
}
我在這里編碼,給你並想知道如何做到這一點。 試一試,我應該為你工作。
我可以從下面的代碼中看到您的UI
public class DisplayMusicCD extends javax.swing.JFrame {
// Here is to load the TableModel
String[] columnName = {"Code", "Title", "Artist", "Price"};
DefaultTableModel dtm = new DefaultTableModel(columnName, 0);
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
...
您正在創建一個新的MusicEdit數組列表並迭代列表,該列表是空的,因為它剛剛創建時沒有添加任何對象。
您需要遍歷在第一部分代碼中創建的MusicEdit列表。 您實際在列表中添加了對象的位置。
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
JOptionPane.showMessageDialog(null, "Added Successfully");
嘗試引用已添加元素的音樂列表並對其進行迭代。
// this is to save to the array.
ArrayList<MusicEdit> musiclist = new ArrayList<MusicEdit>();
code = Integer.parseInt(txtAddMusicCode.getText());
title = txtAddMusicTitle.getText();
artist = txtAddMusicArtist.getText();
price = Integer.parseInt(txtAddMusicprice.getText());
MusicEdit s = new MusicEdit(code, title, artist, price);
musiclist.add(s);
JOptionPane.showMessageDialog(null, "Added Successfully");
這段代碼很好,在代碼第5行的第二個和平,
ArrayList<MusicEdit> musiclist= new ArrayList<MusicEdit>();
在這里,您將創建新的對象musiclist
,該列表為null。 要從列表中加載數據,您需要獲取該列表。 如果您分享您的課程,那么我可以相應地重構您的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.