Si vous exécutez le petit exemple ci-dessous, vous verrez une bordure autour de la région centrale. Je ne suis pas sûr de savoir pourquoi cette frontière est visible.Comment se débarrasser de la bordure avec un JTable/JScrollPane
Cela se produit lorsqu'un JTable se trouve dans un JScrollPane. J'ai essayé différentes choses pour l'enlever mais jusqu'ici pas de chance. Un JTable sans le JScrollPane n'affiche aucune bordure.
Voir l'exemple ci-dessous. 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));
}
}
Au lieu de définir la bordure null, avez-vous essayer BorderFactory.createEmptyBorder()? –
Aussi, ne négligez pas de 'pack()' le 'frame'. – trashgod