我正在使用JFrame& JPanel创建一个frame.JFrame包含组合框,CheckBoxes,JLabels等。将JPanel的布局设置为“null”,因为我使用setBounds(int,int,int,int)来设置JFrame上组件的位置。
还有一个JButton(名为“Submit”)。在提交按钮上我添加了actionListener,所以如果我点击这个按钮,一个表将在帧上生成(在运行时)。
JTable在JFrame上成功显示,但Table列名不与JFrame一起显示(按下提交按钮时只显示表数据)。
我也在使用带有JTable的setBounds。在这种情况下我该怎么做?
submitButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Object ColumnName[] = {"Document Name", "Modified Date", "Size(in MB)"};
Object data[][] = { {"test.txt", "24-Oct-2011", "540"}};
table = new JTable(data,ColumnName);
table.setBounds(20,230,330,100);
panel.add(table);
panel.repaint();
panel.revalidate();
}
});
尽快给我你所有宝贵的建议。 谢谢。
答案 0 :(得分:2)
可能是revalidate();
面板的方法。在面板上设置表格后call
但JScrollPane
是最好的方法。
答案 1 :(得分:2)
我认为你不能:
setBounds(int, int, int, int)
,因为这是LayoutManager
JTable
。只需实施DefalutTableModel
,即可添加/删除TableRows
,重置TableModel
- 所有更改都会立即显示在JTable
中。 你可以:
JTable
放入JScrollPane
。 答案 2 :(得分:1)
首先需要将JTable添加到JScrollPane中,然后将该JScrollPane添加到主面板中。
JScrollPane jsp = new JScrollPane(jtable);
看看这个:JTable
编辑:此主题讨论了同样的问题:Jtable Columns