gpt4 book ai didi

java - JScrollPane 阻止与内容交互

转载 作者:行者123 更新时间:2023-12-01 11:48:30 25 4
gpt4 key购买 nike

我有一个JScrollPane其客户是 Container带布局BoxLayout .

BoxLayout内是多个(动态生成)JPanels 。然而,JScrollPane不滚动(滚动条显示并调整大小,但您实际上无法移动它们),而且我也无法与 JScrollPane 的内容进行交互.

代码如下:

public static void setupOrderTable(){
orderTable = new Container();
scroller = new JScrollPane(orderTable ,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scroller.setPreferredSize(new Dimension(810,500));
orderTable.setLayout(new BoxLayout(orderTable,BoxLayout.Y_AXIS));
if (orderTable!=null)
mainContainer.remove(orderTable);
for (Order o: OrderManager.getList()){
orderTable.add(new ControlRowItem(o));
}
mainContainer.add(scroller,BorderLayout.CENTER);
frame.pack();
}

如果我只更换线路就可以正常工作

mainContainer.add(scroller,BorderLayout.CENTER);

mainContainer.add(orderTable,BorderLayout.CENTER);

但是它显然不会滚动。否则,正如我所说,滚动条不起作用,并且我无法与 orderTable 中的任何 JPanel 进行交互。

Here's a screenshot if that helps

最佳答案

不要将重量级 (Container) 组件与轻量级 (JScrollPane) 组件混合在一起,它们混合得不好。将 orderTable 更改为 JPanel

虽然它应该已在 Java 6 中得到修复,但我在尝试此操作时看到了太多奇怪的事情,因此值得付出任何努力。简单来说,不要在 Swing 容器中混合重量级组件 (AWT)

关于java - JScrollPane 阻止与内容交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28955135/

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