gpt4 book ai didi

Java Swing : how to make scrollable view of items that may have buttons inside of them?

转载 作者:行者123 更新时间:2023-12-02 11:05:54 26 4
gpt4 key购买 nike

我正在尝试制作可滚动的项目列表,其中可能有按钮。它包含在 JTabbedPane 中,在彻底谷歌搜索后我仍然不确定如何继续。

我想要实现的目标的图片: quick sketch我想到的最好的事情是 JScrollPane,其项目为带有 BoxLayout 的 JPanel,它们具有“项目名称 | 按钮 | 按钮”,尽管我可能完全错误,JScrollPane 无法接受多个组件。

我需要帮助的是将这些 JPanel 添加到 JScrollPane 中。怎么做?我尝试了简单的“this.add(面板名称)”,但它不起作用。

    // MainWindow:
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("Overview", new OverviewTab());
tabbedPane.addTab("Warehouse", new WarehouseTab());
tabbedPane.addTab("History", new HistoryTab());

public class WarehouseTab extends JScrollPane {
WarehouseTab(){
this.setBorder(null);
this.add(new WarehouseItem());
this.add(new WarehouseItem());
this.add(new WarehouseItem());
this.setVisible(true);
}

public class WarehouseItem extends JPanel {
WarehouseItem(){
this.setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
JButton sell = new JButton("Sell");
JButton tax = new JButton("Return tax");
JLabel name = new JLabel("Item name");
this.add(name);
this.add(tax);
this.add(sell);
}

我还尝试将 JPanel 打包到容器中,然后将 JScrollPane 的视口(viewport)指向它,正如其他一些论坛上的建议,但它也不起作用。它还应该尝试什么?

如有任何建议,我们将不胜感激,谢谢。

最佳答案

although I might be plain wrong and JScrollPane is unable to accept multiple Components.

是的,你是对的,JScrollPane 管理单个“ View ”。您应该从一个单独的 JPanel 开始,它充当其他元素的“主要”容器,然后将其包装在 JScrollPane

public class WarehouseTab extends JPanel {
public WarehouseTab() {
setLayout(new BorderLayout());
add(new JScrollPane(new WarehousePane());
}
}

public class WarehousePane extends JPanel {
WarehousePane(){
setLayout(...); // Set an appropriate layout for overall needs
this.add(new WarehouseItem());
this.add(new WarehouseItem());
this.add(new WarehouseItem());
}

此外,请查看 How to Use Scroll PanesJavaDocs其中提供了有关 JScrollPane 如何工作的更多信息

关于Java Swing : how to make scrollable view of items that may have buttons inside of them?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50958536/

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