程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在JTable中隐藏网格线大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在JTable中隐藏网格线?

开发过程中遇到如何在JTable中隐藏网格线的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在JTable中隐藏网格线的解决方法建议,希望对你解决如何在JTable中隐藏网格线有所启发或帮助;

你必须设置两个东西

  • 禁用网格显示
  • 零行/列小区间间距

在代码中:

table.setShowGrID(false);
table.seTintercellSpacing(new Dimension(0, 0));

或使用JXtable(来自SwingX项目)为您执行此操作:

xtable.setShowGrID(false, falsE);

解决方法

我正在尝试隐藏JTable的网格线,但没有结果。即使尝试更改网格线的颜色也不起作用。这是我的代码:

    // build the table
tableView = new JTable(ttm);
//Specifify the SELEction Listener and model
listSELEctionModel = tableView.getSELEctionModel();
listSELEctionModel.addListSELEctionListener(new SharedListSELEctionHandler(tableView));
tableView.setSELEctionModel(listSELEctionModel);

//Add a mouse listener to our table and implement double click event
tableView.addMouseListener(new MouseAdapter(){

    public void mouseClicked(MouseEvent E){

        //if Double click in a message show the message Details window
        if (e.getClickCount() == 2){

            showmessageDetail();
            }
    }


} );

// set my own renderer
CustomcatellRenderer mtr = new CustomcatellRenderer();
tableView.setDefaultRenderer(Object.class,mtr);
// table properties
tableView.setGridColor(Color.black);
tableView.setShowGrid(false);
//tableView.setShowVerticalLines(false);
//tableView.setShowHorizontalLines(false);
tableView.setSELEctionMode(ListSELEctionModel.SINGLE_SELECTION);
//hide header
tableView.setTableHeader(null);
// hide the id column
String columname = tableView.getcolumnName(TableModel.COLUMN_ID);
tableView.getcolumn(columname).setMaxWidth(0);
tableView.getcolumn(columname).setMinWidth(0);
tableView.getcolumn(columname).setWidth(0);
//load the messages in the table
loadmessages();
//adjust column width
tableView = autoResizeColWidth(tableView,ttm);


    public class CustomcatellRenderer extends JPanel implements TableCellRenderer {
/**
 * First gradient color
 */
private static final Color COLOR_1 = new Color(255,255,200);
/**
 * Second gradient color
 */
private static final Color COLOR_2 = new Color(255,200);
/**
 * Controls gradient direction
 */
private static final float SIDE = 50;

private GradientPaint gradientPaint = new GradientPaint(0,COLOR_1,SIDE,COLOR_2,truE);

private JLabel label = new JLabel();

    public CustomcatellRenderer() {
        setOpaque(true);
        setLayout(new BorderLayout());
        add(label,BorderLayout.CENTER);
        label.setHorizontalAlignment(SwingConstants.CENTER);
    }

    public Component getTableCellRendererComponent(JTable table,Object value,Boolean isSELEcted,Boolean hasFocus,int row,int column) {
        label.setText(value.toString());
        return this;
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D) g;
        g2.setPaint(gradientPaint);
        g2.fillRect(0,getWidth(),getHeight());
    }
    }

始终绘制白色网格线。我被困在这里&Hellip;

我是否必须实现自定义视口才能摆脱这种情况?

预先感谢,亚历克斯

大佬总结

以上是大佬教程为你收集整理的如何在JTable中隐藏网格线全部内容,希望文章能够帮你解决如何在JTable中隐藏网格线所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。