【发布时间】:2012-02-05 16:27:24
【问题描述】:
我正在为一个班级项目设计一个披萨外卖模拟器。我和我的团队已经完成了大部分工作,但我们在 GUI 方面遇到了困难。
我需要能够将商品添加到订单中。每次单击添加项目按钮时,它都会创建一个新的 AddItemPanel(我创建的扩展 JPanel 的面板),并将其添加到 JScrollPane。
我遇到的问题是它只会将一个 AddItemPanel 添加到 scrollPane。我不确定它们是否隐藏在第一个下面,或者我只是在做一些愚蠢的事情。
以下是相关代码:
JPanel itemPanel = new JPanel(new GridLayout(0, 1));
JViewPort viewPort = new JViewport();
viewPort.setLayout(new GridLayout(0, 1)); // not sure if I need this line
JScrollPane scrollPane = new JScrollPane(viewPort);
itemPanel.add(scrollPane);
// other stuff
JButton addItemButton = new JButton("Add Item");
addItemButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
viewPort.add(new AddItemPanel());
validate();
}
});
所以我的问题是:这甚至可以用 JScrollPane 实现吗?如果是这样,我该怎么做?如果没有,我将如何完成类似的事情?
(PS。我已经链接了屏幕截图,以防它们有助于解释。)
【问题讨论】:
-
我从来不需要设置视口的布局,并怀疑这不是一件好事。
-
另见
ListDialog。
标签: java swing user-interface jpanel jscrollpane