相关疑难解决方法(0)

jtable变为可见后无法设置列宽

我已经阅读了数百次Oracle的API,在这里和其他地方阅读了无数文章,并且在jtable变得可见之后我仍然无法调整列的大小.

正如你可以推断的那样,我也试图使用jcheckbox来设置列的可见性.正如其他文章所述,使用addColumn和removeColumn不会将列返回到其原始位置.我之前使用过一个额外的类来保存列信息,例如列本身,它的标识符和原始索引.在列的可见性发生变化之后,添加/删除数据的问题也变得混乱了.我注意到数据不在正确的列中.因此,我选择设置列的minWidth,preferredWidth和maxWidth.

现在我的问题是,当setColumnVisible设置为true时,下面的代码不会调整列的宽度.用julius summner miller的话说,为什么会这样?

import java.awt.*;
import java.awt.event.*;

import java.util.*;

import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.table.*;

class run
{
    public static void main(String args[])
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                Viewer viewer = new Viewer();

                JFrame jframe = new JFrame();
                jframe.add(viewer);
                jframe.createBufferStrategy(1); // required for dual monitor issues
                jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                jframe.setLocation(50,100);
                jframe.pack();
                jframe.setVisible(true);
            }
        });
    }
}

class Viewer extends JPanel
{
    static final long serialVersionUID = 0;

    DefaultTableModel defaultTableModel;
    JTable jtable;
    JCheckBox jcheckBox[];

    public Viewer() …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jtableheader preferredsize

4
推荐指数
1
解决办法
793
查看次数

标签 统计

java ×1

jtable ×1

jtableheader ×1

preferredsize ×1

swing ×1