作为我正在编写的应用程序的一部分,我需要将旧的(重量级)Canvas 与摆动组件混合在一起——特别是将它们嵌套在 JSplitPane 中。但是,当我这样做时,分隔线拒绝在任何地方调整大小,就好像两个画布都不会接受缩小尺寸一样。因此,演示该问题的代码是:
JFrame frame = new JFrame();
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new Canvas(), new Canvas());
pane.setResizeWeight(0.5);
frame.add(pane);
frame.pack();
frame.setVisible(true);
我最初认为这是一件很容易解决的事情,但是在进行了大量研究之后,这些选项似乎呈现为:
- 改用 JPanel(在我使用 vlcj 直接渲染到画布上的情况下并不总是一个选项)
- 插入在某些情况下可能有效的 x 狡猾的 hack
有没有更好的方法来做到这一点?或者它真的只是诉诸黑客的一个案例?我已经讨论过其他选项,例如是否可以使用替代的 SplitPane 实现,但没有重量级的实现,如果轻量级的实现避免了这个问题,我会感到惊讶。