该表放置在“JScrollPanel”中,并使用“DefaultTableModel”添加标题和行。
无论我做了什么,我都无法使表显示标题或行。
我在这里遗漏了什么?
class Controls extends JPanel{
private JButton compileButton;
private JPanel controls;
private JTabbedPane tabbedPane1;
private JButton insertButton;
private JTable insertedFilesTable;
private JScrollPane insertedFilesViewport;
private JPanel minify;
private JFileChooser insertChooser;
public Controls () {
insertChooser = new JFileChooser();
compileButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
initCompile();
}
});
insertButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
buttonActionPerformed(e);
}
});
}
public void main () {
JFrame frame = new JFrame("Controls");
frame.setLayout(new SpringLayout());
frame.setContentPane(new Controls().controls);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DefaultTableModel model = new DefaultTableModel();
model.addColumn("Files");
model.addColumn("Status");
insertedFilesTable = new JTable(model);
insertedFilesViewport = new JScrollPane(insertedFilesTable);
insertedFilesViewport.setViewportView(insertedFilesTable);
insertedFilesTable.setFillsViewportHeight(true);
String[] data = {"test","test"};
model.addRow(data);
frame.add(insertedFilesViewport);
frame.setSize(500,500);
frame.setVisible(true);
}
private void buttonActionPerformed(ActionEvent evt) {
insertChooser.showSaveDialog(this);
}
}
frame.setLayout(new SpringLayout());
....
frame.add(insertedFilesViewport);
不要将框架的布局更改为SpringLayout。没有理由这么做。
之所以看不到包含该表的滚动窗格,是因为没有对add(...)使用任何约束方法。阅读Swing教程中关于如何使用SpringLayout的部分,了解添加组件的约束有多复杂。
如果将布局保留为默认的BorderLayout
,则组件将默认添加到BorderLayout
的中心
。上面的教程还有一节关于如何使用BorderLayout
您应该阅读。
这是我的类的全部代码。我正在尝试有一个带有JScrollPane的JTable,我也尝试了在JTable和JScrollPane上设置setVisible。我认为问题可能是我将JScrollPane添加到JPanel而不是JFrame中,但我希望在我的面板上添加该得分表。在我的JPanel(背景)中,我为背景绘制一个图像,仅此而已。 安妮的想法?
问题内容: 我们有一个简单的项目,我们从套接字读取数据,并希望用即将到来的数据填充表,但是我们找不到找到将行添加到尚未创建的对象的方法,只能在以下位置找到添加行的方法:表的创建时间。 是否可以向中动态添加行,或者有更好的替代对象来处理这种显示数据的方式? 编辑 :非常感谢您的回答。 他们三个看起来都很有前途,但是我只选择一个,我认为最好的就是纪尧姆的。 问题答案: 您应该创建一个自定义。A 实际上
我找到了更新数据的示例,但它使用了DefaultTableModel。当我创建自己的TableModel和自己的data类时,当我将数据添加到JTable中时,它不会更新。 有我的桌子模型: 当我添加了任何信息,但它没有更新。在JTable中,我必须把这个方法放在哪里来进行正确的数据更新?
我正在Java创建一个 代码:
我创建了一个表单,其中添加了一个,它有3列。第二列和第三列有编辑器。 我希望当我们选择第二列组合框的第一项时,第三列组合框的第一个组合框也应该被选择,反之亦然。 我该怎么做?