JTable列setPreferredWidth()不起作用

时间:2019-05-24 09:28:22

标签: java swing jtable column-width

我正尝试使用setPreferredWidth()来更改列的大小,但是由于某些原因,唯一更改列的大小是最后一个(“作业”)。

我真的不知道该怎么办,我认为如果由于某种原因将其余列的大小设置为75,则与内部创建的最后两列有关。

当ubi和job等于“”时,它将创建列,然后正确填充JTable,但是由于某些原因,只有列job的大小更改为150或设置了任何大小。

public void FillTable(JTable TablaEmp, String ubi, String job) {
        DefaultTableModel modelT = new DefaultTableModel();
        TablaEmp.setModel(modelT);
        TablaEmp.setDefaultEditor(Object.class, null);
        modelT.addColumn("ID");
        modelT.addColumn("Name");
        modelT.addColumn("Surname");
        int cont = 2;
        int contobject = 3;
        int ubicolumn = 0;
        int jobcolumn = 0;

        TablaEmp.setAutoResizeMode(TablaEmp.AUTO_RESIZE_OFF);
        TablaEmp.getColumnModel().getColumn(0).setPreferredWidth(150);
        TablaEmp.getColumnModel().getColumn(1).setPreferredWidth(150);
        TablaEmp.getColumnModel().getColumn(2).setPreferredWidth(150);

        int numSize = employee.list().size();

        if (ubi.equals(" ")) {
            modeloT.addColumn("Ubi");
            cont += 1;
            contobject += 1;
            ubicolumn = cont;
            TablaEmp.getColumnModel().getColumn(ubicolumn).setPreferredWidth(150);
        } else {
            //nothing
        }

        if (job.equals(" ")) {
            modeloT.addColumn("Job");
            cont += 1;
            contobject += 1;
            jobcolumn = cont;
            TablaEmp.getColumnModel().getColumn(jobcolumn).setPreferredWidth(150);
        } else {
            //nothing
        }

        Object[] column = new Object[contobject];
        for (int i = 0; i < numSize; i++) {
            //Fill Jtable working
        }
    }

0 个答案:

没有答案