为了账号安全,请及时绑定邮箱和手机立即绑定

将 JButton 添加到 JScrollPame

将 JButton 添加到 JScrollPame

梵蒂冈之花 2023-03-17 17:06:38
我有以下代码取自 GeeksforGeeks,它使用 JScrollPane 在 JTable 中显示二维数组的内容:public class JTableExamples { // frame JFrame f; // Table JTable j; // Constructor JTableExamples() {     // Frame initiallization     f = new JFrame();     // Frame Title     f.setTitle("JTable Example");     // Data to be displayed in the JTable     String[][] data = {         { "Kundan Kumar Jha", "4031", "CSE" },         { "Anand Jha", "6014", "IT" }     };     // Column Names     String[] columnNames = { "Name", "Roll Number", "Department" };    // Initializing the JTable     j = new JTable(data, columnNames);     j.setBounds(30, 40, 200, 300);     // adding it to JScrollPane     JScrollPane sp = new JScrollPane(j);     f.add(sp);     // Frame Size     f.setSize(500, 200);     // Frame Visible = true     f.setVisible(true); } 我想做的是在表格下方添加一个简单的组件(如 JButton),但它似乎不起作用。我尝试通过将 JButton 添加到 JPanel 并将 JPanel 添加到框架来修改代码:   JButton button = new JButton("Back");   JPanel panel = new JPanel();   panel.add(button);   f.add(sp);   f.add(panel); 但这只是删除整个表格并用一个按钮替换它。我还尝试将按钮添加到 JPanel 并将该 JPanel 添加到 JScrollPane:   JButton button = new JButton("Back");   JPanel panel = new JPanel();   panel.add(button);   sp.add(panel);   f.add(sp);但这似乎并没有改变什么。我还尝试修改 JScrollPanel 的首选大小和最大大小,但无济于事——它总是占据整个屏幕并阻止 JButton 出现在屏幕上。此处不考虑设计,只考虑功能:让 JButton 出现在我的 JTable 下方。任何建议将不胜感激。先感谢您!
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

JFrame 的默认布局管理器是BorderLayout.

f.add(sp);
f.add(panel);

当您不指定约束时,BorderLayout假定CENTER。您只能将一个组件添加到CENTER.

相反,您的代码应该是:

f.add(sp, BorderLayout.CENTER);
f.add(panel, BorderLayout.PAGE_END);

请注意 a 的默认布局管理器JPanelFlowLayout. 因此按钮将在面板中水平居中。

此外,不使用 JPanel,而是尝试将按钮直接添加到PAGE_END框架中以查看差异。

阅读 Swing 教程中有关使用布局管理器的部分,了解更多信息和示例,以了解使用每种不同布局管理器的不同之处,以了解上述建议的差异。

编辑:

有没有办法降低桌子的高度

如果你知道你有一张小桌子,那么你可以使用:

table.setPreferredScrollableViewportSize(table.getPreferredSize());

这将使滚动窗格的大小与表格相同。

然后你使用:

//f.setSize(500, 200); f.pack();

现在所有组件都将以其首选大小显示。


查看完整回答
反对 回复 2023-03-17
  • 1 回答
  • 0 关注
  • 77 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信