use only code line
middlePanel.add(scrollPane);
JPanel (middlePanel)
should be layed byGridLayout
orBorderLayout
remove code lines
middlePanel.add(table.getTableHeader());
andmiddlePanel.add(table);
move code line
frame.getContentPane().add(middlePanel, BorderLayout.CENTER);
aftermiddlePanel.add(scrollPane);
, and could beframe.add(middlePanel);
if isn't changedLayoutManager
forJFrame
remove
frame.setSize(400, 200);
replace withframe.pack()
and to determine properPreferredSize
by overridegetPreferredSize
forJScrollPane
table headers not showing up on top of table
-
04-04-2022 - |
Question
I am making a JTable and I am having 2 problems. #1 the table headers are showing up on the side of the table and #2 the scroll pane isn't showing up. This is some of my code right now.
String [] data = {"a", "b", "c", "d", "e"};
JFrame frame = new JFrame("String Table");
JPanel middlePanel = new JPanel();
DefaultTableModel model = new DefaultTableModel();
model.addColumn("String", data);
JTable table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
frame.getContentPane().add(middlePanel, BorderLayout.CENTER);
middlePanel.add(scrollPane);
middlePanel.add(table.getTableHeader());
middlePanel.add(table);
frame.setSize(400, 200);
frame.setVisible(true);
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow