我想将 JTable 放置在屏幕右中心部分的 JPanel 内,但无法在 JPanel 内显示 JTable,仅显示空白 JPanel。请帮助。
TableModel tmodel = new DefaultTableModel(arr,columns)
{
public Class getColumnClass (int column)
{
Class returnValue;
if((column >=0) && (column<getColumnCount()))
{
returnValue = getValueAt(0,column).getClass();
}
else
{
returnValue = Object.class;
}
return returnValue;
}
};
JTable jtable = new JTable(tmodel);
RowSorter <TableModel> rsorter = new TableRowSorter <TableModel> (tmodel);
jtable.setRowSorter(rsorter);
JScrollPane jspane = new JScrollPane(jtable);
jp.add(jtable);
jp.add(jspane,BorderLayout.CENTER);
jp.setLayout(null);
jp.setLocation(700,150);
jp.setSize(600,350);
jf.getContentPane().add(jp);
}
};
EventQueue.invokeLater(runner);
}
最佳答案
您的代码中有两个问题。第一个:您尝试添加 JTable 实例两次,第一次添加到滚动 Pane 中,第二次添加到面板中。 第二个你应该设置你的布局,你不能使用空布局。 示例代码如下所示:
jp.setLayout(new BorderLayout());
JTable jtable = new JTable(tmodel);
RowSorter <TableModel> rsorter = new TableRowSorter<>(tmodel);
jtable.setRowSorter(rsorter);
JScrollPane jspane = new JScrollPane();
jspane.setViewportView(jtable);
jp.add(jspane,BorderLayout.CENTER);
jp.setLocation(700,150);
jp.setSize(600,350);
jf.getContentPane().add(jp);
关于java - 将 JTable 定位到 JFrame 内 JPanel 中的 (x,y) 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35826774/