적절한 데이터로 올바른 데이터 모델이 있음에도 불구하고 JTable을 채우면 각 행에 중복 값이 포함되어 데이터에 대한 우려가 높아질 수 있습니다. 무결성.
처음에는 의심이 떨어집니다. 사용자 정의 데이터 모델인 CollectionDataModel에 대해 설명합니다. populate() 메소드 메소드는 의도한 대로 작동하여 기존 데이터를 지우고 컬렉션의 항목으로 채우는 것으로 보입니다. 각각은 ArrayList
JTable을 올바르게 채우려면 다음 고려 사항을 준수해야 합니다. 주의사항:
데이터 모델 또는 JTable 구현이 잘못되면 JTable 채우기 문제가 발생할 수 있습니다. 업데이트되었습니다. JTable이 데이터 모델의 메서드를 올바르게 활용하지 않아 잘못된 채우기가 발생할 수 있습니다.
문제를 해결하려면 CollectionDataModel 구현을 주의 깊게 검토하여 계약을 준수하는지 확인하세요. 또한 JTable 구현을 검사하여 행과 열을 채우기 위해 데이터 모델의 메소드를 올바르게 사용하고 있는지 확인하십시오.
적절한 JTable 채우기를 보여주는 다음 예를 고려하십시오. :
import java.awt.EventQueue; import java.awt.GridLayout; import java.util.Map; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; public class EnvTableTest extends JPanel { public EnvTableTest() { this.setLayout(new GridLayout()); this.add(new JScrollPane(new JTable(new EnvDataModel()))); } private static class EnvDataModel extends AbstractTableModel { private Map<String, String> data = System.getenv(); private String[] keys; public EnvDataModel() { keys = data.keySet().toArray(new String[data.size()]); } @Override public String getColumnName(int col) { if (col == 0) { return "Key"; } else { return "Value"; } } @Override public int getColumnCount() { return 2; } @Override public int getRowCount() { return data.size(); } @Override public Object getValueAt(int row, int col) { if (col == 0) { return keys[row]; } else { return data.get(keys[row]); } } } private void display() { JFrame f = new JFrame("EnvTableTest"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(this); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new EnvTableTest().display(); } }); } }
이 예에서 EnvDataModel 사용자 정의 데이터 모델은 환경 변수에서 데이터를 올바르게 검색하고 이를 제공합니다. JTable에 추가하면 테이블이 적절하게 채워집니다.
위 내용은 내 데이터 모델의 데이터가 정확함에도 불구하고 내 JTable에 중복 행이 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!