首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSplitPane和画布

JSplitPane和画布
EN

Stack Overflow用户
提问于 2011-07-18 01:27:32
回答 1查看 902关注 0票数 2

作为我正在编写的应用程序的一部分,我需要将旧的(重量级)画布与swing组件混合--特别是将它们嵌套在JSplitPane中。但是,当我这样做时,分割器拒绝在任何地方调整大小,好像两个画布都不会接受缩小大小一样。因此,说明这一问题的守则是:

代码语言:javascript
复制
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实现,但是没有重量级的实现,如果轻量级的实现避免了这个问题,我会感到惊讶的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-18 03:20:38

JSplitPane使用组件的“最小大小”来确定组件在使用分隔符时是否可以收缩。

我以前从未使用过画布,但似乎最小尺寸总是默认为首选大小。

覆盖getMinimumSize(…)画布尺寸法返回合理的最小值。

对于快速文本,您可以使用:

代码语言:javascript
复制
Canvas canvas = new Canvas();
canvas.setMinimumSize( new Dimension(50, 50) );
JSplitPane pane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, canvas, new Canvas());

你可以向左移动分隔器,但永远不能向右移动。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6727927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档