gpt4 book ai didi

java - JTable 的快速问题

转载 作者:行者123 更新时间:2023-11-30 05:10:40 25 4
gpt4 key购买 nike

我已经设置了我的框架,左侧有一个 JTree,右侧有一个 JTable,并使用 BorderLayout 来完成此操作。然而,一旦我将任何数据放入 JTable 中,它就会扩展到几乎覆盖整个框架,以及我的 JTree。该表当前根本没有数据(我正在验证我的 SelectionListener),只有几个总共 15 个字符的列标题。它不可能需要额外的空间。

这是我的设置代码:

    primaryframe = new javax.swing.JFrame();
primaryframe.setTitle("Bus Route Finder");
primaryframe.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
primaryframe.setSize(500, 500);
primaryframe.setLayout(
new java.awt.BorderLayout()
);

// Set up the tree and it's dependent objects(model, scrollpane, etc).
javax.swing.tree.DefaultMutableTreeNode node = new javax.swing.tree.DefaultMutableTreeNode(dataroot.GetName());
node.setUserObject(dataroot);
CreateNodes(dataroot, node);
primaryframe.add(
treescrollpane = new javax.swing.JScrollPane(
datatree = new javax.swing.JTree(
treemodel = new javax.swing.tree.DefaultTreeModel(
node
)
)
),
java.awt.BorderLayout.WEST
);
datatree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
public void valueChanged(javax.swing.event.TreeSelectionEvent e) {
javax.swing.JTree tree = (javax.swing.JTree)e.getSource();
javax.swing.tree.DefaultMutableTreeNode newnode = (javax.swing.tree.DefaultMutableTreeNode)tree.getSelectionPath().getLastPathComponent();
Controller.TreeData data = (Controller.TreeData)newnode.getUserObject();
tablemodel.setNumRows(0);
tablemodel.setColumnCount(0);
for(int i = 0; i < data.GetNumberOfFields(); i++) {
tablemodel.addColumn(data.GetFieldName(i));
}
}
});

primaryframe.add(
tablescrollpane = new javax.swing.JScrollPane(
datatable = new JTable(
tablemodel = new javax.swing.table.DefaultTableModel()
)
),
java.awt.BorderLayout.EAST
);

最佳答案

BorderLayout 非常挑剔。如果您知道您只想要两个项目(一行两列),我建议您使用 GridLayout。不确定这是否有帮助,但我总是在 GridLayout 方面取得更大的成功。

如果您坚持使用 BorderLayout,请尝试使用 setMaximumSize(Dimension) 设置进入其中的对象(例如 JTable)的最大大小。

关于java - JTable 的快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com