0
하나의 열에 JCheckbox를 추가하려는 Jtable이 있습니다. 그러나 JCheckbox 객체를 만들면 javax.swing.JCheckBox가 열에 표시됩니다. 이미지를 참조하십시오. 제발 어떻게 저를 고쳐 줄 수 있니? 나는 도처에서 수색했지만 그것에 대한 해결책을 찾을 수없는 것 같습니다. 고맙습니다.JTable의 JCheckBox 표시
하나의 열에 JCheckbox를 추가하려는 Jtable이 있습니다. 그러나 JCheckbox 객체를 만들면 javax.swing.JCheckBox가 열에 표시됩니다. 이미지를 참조하십시오. 제발 어떻게 저를 고쳐 줄 수 있니? 나는 도처에서 수색했지만 그것에 대한 해결책을 찾을 수없는 것 같습니다. 고맙습니다.JTable의 JCheckBox 표시
TableModel
TableModel
에 구성 요소를 추가하지 않습니다. DefaultTableModel
을 사용한다고 가정하면 열을 여러 개의 부울로 채우면됩니다. 테스트를 마친 후 메서드 DefaultTableModel
(또는 TableModel
구현)을 재정의해야합니다. 은 "체크 박스"열, 그것은 ... Boolean.class
은 자세한 내용
예를 들어에 대한 How to use tables를 참조 반환
import java.awt.EventQueue;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.table.DefaultTableModel;
public class TestCardLayout {
public static void main(String[] args) {
new TestCardLayout();
}
public TestCardLayout() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
Random rnd = new Random();
DefaultTableModel model = new DefaultTableModel(new Object[]{"Check boxes"}, 0) {
@Override
public Class<?> getColumnClass(int columnIndex) {
return Boolean.class;
}
};
for (int index = 0; index < 10; index++) {
model.addRow(new Object[]{rnd.nextBoolean()});
}
JTable table = new JTable(model);
final JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new JScrollPane(table));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
기본 모델 만 사용하고있는 것은 아닙니다. 나는 벡터를 사용하여 테이블을 구성했다. 또한 부울을 시도했지만 true 및 false가 표시되고 JCheckBox는 표시되지 않습니다. 감사합니다 – user3419642
1-'TableModel'을 사용하고 있습니다.'DefaultTableModel'이라고 불리는 것입니다.'getColumnClass'라는 메서드가 있습니다.이 메소드는 각 열에 대해 예상되는 클래스 유형을 반환하기 위해 재정의해야하며, 예를 들어 설명했듯이 확인란의 열에 대해'Boolean.class'를 반환하면 모든 마법이 발생합니다 – MadProgrammer
맞습니다. 감사 – user3419642