java - Swing - JTable JScrollPane remove bottom border or add header border -


i have dynamically created jtable jscrollpane. trying resolve border issue. if specify border border around area theres no table data. if create empty border in scrollpane desired border, border around headings not there. include 2 pics can see issue.

the left , bottom border shouldn't there.

enter image description here

this correct, border on heading missing. enter image description here

i include pertinent code.

one class

  private void createpanels(jbutton close, jbutton mapbutton){      jpanel mainpanel = new jpanel();     mainpanel.setlayout(new boxlayout(mainpanel, boxlayout.y_axis));     add(mainpanel);     setmodal(true);     jpanel toppanel = new jpanel(new borderlayout(0, 0));     toppanel.setpreferredsize(new dimension(400, 30));     jlabel title = new jlabel("mapping flags");     title.setfont(new font("sansserif", font.plain, 17));     jpanel panelfortitle = new jpanel(new flowlayout(flowlayout.left, 270, 30));     panelfortitle.add(title);     mainpanel.add(panelfortitle);     mainpanel.add(toppanel);      jpanel tablepanel = new jpanel(new borderlayout());     tablepanel.setborder(borderfactory.createemptyborder(15, 25, 15, 25));     tablepanel.add(sptable);     mainpanel.add(tablepanel);     jpanel bottom = new jpanel(new flowlayout(flowlayout.right, 5, 30));     close.setpreferredsize(new dimension(90,22));     mapbutton.setpreferredsize(new dimension(90,22));     bottom.add(close);     bottom.add(mapbutton);     mainpanel.add(bottom);     bottom.setmaximumsize(new dimension(600, 0));     settitle("mapping flags");     setsize(new dimension(650, 380));     setresizable(false);     setdefaultcloseoperation(jdialog.dispose_on_close);     setlocationrelativeto(null);     setvisible(true);  } 

another class

public void setmappingstable(){      dtm = new defaulttablemodel(new string[]{"style id", "style", "exact match", "carry over", "oem temp"}, 0);     mappingstable.setmodel(dtm);     mappingstable.setrowheight(20);     mappingstable.getcolumnmodel().getcolumn(0).setpreferredwidth(75);     mappingstable.getcolumnmodel().getcolumn(1).setpreferredwidth(410);     mappingstable.getcolumnmodel().getcolumn(2).setpreferredwidth(130);     mappingstable.getcolumnmodel().getcolumn(3).setpreferredwidth(130);     mappingstable.getcolumnmodel().getcolumn(4).setpreferredwidth(130);     mappingstable.setfont(new font("sansserif", font.plain, 12));     mappingstable.setbackground(color.white);     color color = mappingstable.getgridcolor();    // mappingstable.setborder(new matteborder(0, 0, 0, 0, color));     mappingstable.setborder(borderfactory.createlineborder(color.red,1));     adddatatotable(); }   public jscrollpane setscrollpane(jtable mappingstable){      sptable = new jscrollpane(mappingstable);     sptable.setbounds(45, 230, 700, 300);   //  sptable.setborder(borderfactory.createemptyborder());     return sptable;  } 

what can either add in header border or remove bottom, right, left sections not part of jscrollpane data? help. seems no matter never need.

what can either add in header border

you can add matteborder table header. specify border 3 sides of component.

you can table header table

another option might override getpreferredscrollableviewportsize() method of jtable. can control size of scrollpane.


Comments