【问题标题】:How to create a java grid slider?如何创建一个java网格滑块?
【发布时间】:2015-11-17 21:08:47
【问题描述】:

我在创建动态网格菜单时遇到了一些麻烦。我想从 mysql 数据库中的库存中加载项目并显示在网格菜单中。我通常在这里使用 jtable 是我想要的

这就是我对我的代码所做的

   void GridTest() {
       for (int i = 0; i < 11; i++) {
            JButton button = new JButton(Integer.toString(i + 1));
            jPanel1.add(button);
           button.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
                    System.out.println(getTitle());
                }
            });
        }
    }

当我单击左或右时,应该转到接下来的 12 个项目。有没有办法实现我的目标?

【问题讨论】:

  • 是的,但所有细节都取决于您的实施。您应该有某种模型,它允许您“分页”浏览结果,通知 ui 它需要更新其视图。该模型将控制当前可用的值。假设您的 ResultSet 支持游标,您可以简单地使用结果集支持模型并将游标移动适当的量。我不会在每个页面更改时重新创建按钮,我只会更新那里的内容

标签: java mysql swing menu gridpanel


【解决方案1】:

这应该通过 LayoutManager 来完成。

使用一个 JPanel 来容纳更多的 JPanel - 这些 JPanel 应该持有持有每个“网格”的按钮。

分配一个CardLayout 作为面板支架的 LayoutManager。因此,您可以这样做:

public void actionPerformed(ActionEvent e) {
                    ((CardLayout) container.getLayout()).show(container, "panel_name");
                }
            });
    

Here 是 Java 教程中处理卡片布局的部分。

【讨论】:

  • 那么,您是在建议操作加载所有视图/页面吗?很多,使用单个视图并根据当前页面更新其内容会更简单 - 恕我直言
  • @MadProgrammer 也许......虽然不确定。我倾向于在我的代码中广泛使用 CardLayouts...:/
  • 假设您有 12, 000 个产品,您必须创建 1, 000 个视图。虽然从编码的角度来看,这可能并不难,但您可以使用单个视图和简单模型来做同样的事情,只需说 ;)
  • 不,我绝对明白你在说什么 :D 但是对于这么小的规模,我认为不需要这样的东西
  • 你怎么知道秤是什么?这意味着您的解决方案不会随着时间的推移而扩展,并且 OP 将遇到新问题
猜你喜欢
  • 1970-01-01
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多