Si ejecuta la pequeña muestra a continuación, verá un borde alrededor de la región central. No estoy seguro de por qué se muestra este borde.Cómo deshacerse del borde con un JTable/JScrollPane
Ocurre cuando una JTable está en un JScrollPane. Intenté varias cosas para eliminarlo, pero hasta ahora no tuve suerte. Una JTable sin el JScrollPane no muestra ningún borde.
Vea el siguiente ejemplo. TIA.
public class TestScrollPane extends JFrame {
public static void main(String[] args) {
JFrame frame = new TestScrollPane();
JPanel panel = new JPanel();
JTable table = new JTable();
panel.setLayout(new BorderLayout());
panel.add(new JLabel("NORTH"), BorderLayout.NORTH);
panel.add(new JLabel("SOUTH"), BorderLayout.SOUTH);
JScrollPane sp = new JScrollPane(table);
// None of these have any effect
sp.setBorder(null);
sp.getInsets().set(0, 0, 0, 0);
sp.setViewportBorder(null);
sp.getViewport().setBorder(null);
sp.getViewport().getInsets().set(0, 0, 0, 0);
sp.getViewport().setOpaque(true);
panel.add(sp, BorderLayout.CENTER);
// Adding the table alone shows no border
// panel.add(table, BorderLayout.CENTER);
frame.add(panel);
frame.setVisible(true);
}
public TestScrollPane() throws HeadlessException {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setMinimumSize(new Dimension(100, 100));
}
}
En lugar de establecer un borde nulo, ¿has probado BorderFactory.createEmptyBorder()? –
Además, no omita 'pack()' the 'frame'. – trashgod