我在Java中遇到了JTable的显示问题



首先,我在JPanel类中创建了JTable的结构

public void paint(Graphics g) {
// TODO Auto-generated method stub
this.setLayout(null);

Object [][] data = {};
String[] cols = {"Student ID", "Student Name", "D.O.B", "Contact info"};
DefaultTableModel model = new DefaultTableModel(data, cols);
JTable table = new JTable(model) {
public boolean isCellEditable(int row, int column){
return false;
}
};
JScrollPane scroll = new JScrollPane(table);
scroll.setBounds(20, 50, 620, 200); 
add(scroll);

然后当我添加按钮"加载"Load.addActionListener(listener);时,我已经用ActionListener的方法将一堆数据更新为JTable的行

ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource() == Load) {
JFileChooser f = new JFileChooser();
int result = f.showOpenDialog(null);
if(result == JFileChooser.APPROVE_OPTION) {
String Path= f.getSelectedFile().getAbsolutePath();
path.setText(Path);

Object[][] vector = new String[Dem_Dong(Path)][4]; 
String[] cols = {"Student ID", "Student Name", "D.O.B", "Contact info"};
for (int i = 0; i < Dem_Dong(Path); i++) {
String[] array = Doc_File(Path, i).split("#");
vector[i][0] = array[0];
vector[i][1] = array[1];
vector[i][2] = array[2];
vector[i][3] = array[3];
}
model.setDataVector(vector, cols);
}
}

我的JTable出现了,但它有一个令人不舒服的问题,比如在这里输入图像描述

我在谷歌上搜索了很多方法,但没有人能帮我。如果你知道,请给我一个答案,我是越南大学一年级的学生,希望你能理解我的问题。非常感谢

public void paint(Graphics g) {
// you are currently create your JTable and GUI components here
}

所有这些GUI构建代码都是在一种绘制方法中完成的,坦率地说,这太疯狂了。将其放入只调用一次的代码中,例如类构造函数。绘画方法应仅用于绘画和绘画。

建议:

  • 将代码从油漆中取出并放入类构造函数中
  • 你不应该一开始就凌驾于绘画之上
  • 如果你需要进行自定义绘制(你还没有显示你这样做(,这应该在扩展JPanel的类的paintComponent方法中完成,而不是在paint方法中

最新更新