作为我正在编写的应用程序的一部分,我需要将旧的(重量级)Canvas与摆动组件混合使用 - 特别是将它们嵌套在JSplitPane中。但是,当我这样做时,分隔线拒绝在任何地方调整大小,就好像两个画布都不会缩小尺寸。证明了问题的代码是这样的:JSplitPane和Canvas
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狡猾的黑客可能会在某些情况下工作
有没有更好的方法来做到这一点?或者这只是一个诉诸黑客的案例?我讨论过其他的选择,例如是否有其他的SplitPane实现可用,但没有重量级的实现,如果轻量级实现可以避免这个问题,我会感到惊讶。
您使用的是哪个版本的Java?一些重量轻的部件比其他部件的混合效果更好。 –
@Hovercraft Full of Eels - 同时使用最新的Java 6和Java 7 RC进行测试 - 都给出了相同的结果。 – berry120