Reputation: 41
I am working on a Jtable and I fixed the columns widths using:
colModel.getColumn(0).setMinWidth(15);
colModel.getColumn(0).setMaxWidth(15);
colModel.getColumn(0).setPreferredWidth(15);
but even so when hovering over the table edges/borders the double sided arrow cursos appears as if prompting the user to expand the columns. I want either to have the cursor type fixed throughout the whole dialog or prevent it from changing into this cursor in this specific instance.
Upvotes: 1
Views: 55
Reputation: 9833
It seems to be fine to use TableColumn#setResizable(false) method together.
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class ResizeCursorTest {
public JComponent makeUI() {
JTable table = new JTable(new DefaultTableModel(10, 3));
TableColumnModel colModel = table.getColumnModel();
colModel.getColumn(0).setMinWidth(15);
colModel.getColumn(0).setMaxWidth(15);
colModel.getColumn(0).setPreferredWidth(15);
colModel.getColumn(0).setResizable(false);
JPanel p = new JPanel(new BorderLayout());
p.add(new JScrollPane(table));
return p;
}
public static void main(String... args) {
EventQueue.invokeLater(() -> {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new ResizeCursorTest().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
});
}
}
Upvotes: 2