Java 我的jTable没有显示任何列标题
我试图在我的类MyPage中添加一个jTable,该类中有一个选项卡窗格。我可以在其中调用我的jTable,表完全可见,但列标题不可见。我甚至尝试在滚动窗格中添加我的表,但这也帮不了我。另外,我正在使用Eclipse,我不认为有必要告诉大家这一点,只是为了让大家都知道。这是我的类MyPage和其中的表代码Java 我的jTable没有显示任何列标题,java,swing,jtable,windowbuilder,jtableheader,Java,Swing,Jtable,Windowbuilder,Jtableheader,我试图在我的类MyPage中添加一个jTable,该类中有一个选项卡窗格。我可以在其中调用我的jTable,表完全可见,但列标题不可见。我甚至尝试在滚动窗格中添加我的表,但这也帮不了我。另外,我正在使用Eclipse,我不认为有必要告诉大家这一点,只是为了让大家都知道。这是我的类MyPage和其中的表代码 Public MyPage(){ JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP); tabbedPane.s
Public MyPage(){
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.setBorder(new LineBorder(new Color(0, 0, 0), 2));
tabbedPane.setBounds(10, 122, 744, 386);
contentPane.add(tabbedPane);
JPanel panel_4 = new JPanel();
tabbedPane.addTab("Customers list", null, panel_4, null);
panel_4.setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(0, 0, 735, 354);
scrollPane.setLayout(null);
table = new JTable();
table.setGridColor(new Color(0, 0, 0));
table.setBounds(10, 10, 715, 332);
panel_4.add(scrollPane.add(table));
conn = javaconnect.ConncrDB();
Table();
}
这是我调用数据库表项的函数
public void Table() {
try {
String sql = "select * From Balances";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, e );
}finally {
try {
rs.close();
pst.close();
} catch (Exception e2) {
JDialog dialog = new JDialog();
dialog.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(dialog, e2 );
}
}
}
我已经尝试了在Internet上找到的所有可能的方法来解决它,但表中没有显示任何列标题,但当我在windows builder设计窗口中的jTable属性中打开模型窗口时,会显示列标题
我已经尝试了在互联网上找到的所有可能的方法来解决这个问题
期待所有告诉你的答案,不要使用null
layouts
scrollPane.setLayout(null);
是解决你问题的关键。JScrollPane
有自己的布局管理器,其中包括列标题视图
我强烈建议你花点时间通读,这将节省你很多时间,并有助于防止许多其他“不寻常”问题
接下来
panel_4.add(scrollPane.add(table));
不是向JScrollPane
添加组件的方式。如果您仔细查看,它们将显示如何使用JScrollPane
JScrollPane
是一个不寻常的容器,因为您实际上并没有向其中“添加”任何内容,而是将组件“包装”在其中
我更喜欢使用构造函数将“视图”传递给JScrollPane
,但您也可以使用
scrollPane.setViewportView(table);
panel_4.add(scrollPane);
所以,有点像
Public MyPage(){
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
tabbedPane.setBorder(new LineBorder(new Color(0, 0, 0), 2));
contentPane.setLayout(new BorderLayout());
contentPane.add(tabbedPane);
// Seems pointless, but hay
JPanel panel_4 = new JPanel(new BorderLayout());
tabbedPane.addTab("Customers list", panel_4);
table = new JTable();
table.setGridColor(new Color(0, 0, 0));
JScrollPane scrollPane = new JScrollPane(table);
panel_4.add(scrollPane);
conn = javaconnect.ConncrDB();
Table();
}
99.9%的问题应该解决@DeepAnshumarya阅读教程-不要使用window builder或任何其他“GUI生成器”,如果你不知道自己在做什么,他们会跟你捣乱doing@DeepanshuMourya如果有效,请投票支持这个答案,并将其标记为有用