【发布时间】:2012-08-10 04:38:29
【问题描述】:
我正在使用 NetBeans GUI 编辑器创建一个应用程序,我希望在其中有一个 JSplitPane,其顶部组件将是 Canvas 内的 JScrollPane,底部组件将是 @ 987654325@,或者类似的。
当我将分隔线拉下并因此增加顶部组件的大小时,一切似乎都可以调整大小。
当我试图向上推动分隔线时出现问题:
分隔线似乎位于Canvas 下方(也可能位于JScrollPane 下方)。
我尝试了JScrollPane 和Canvas 的首选/最小/最大尺寸的各种组合,但似乎没有任何效果。
这是 Netbeans 生成的部分代码,可能与手头的问题有关:
jSplitPane1 = new javax.swing.JSplitPane();
jScrollPane1 = new javax.swing.JScrollPane();
canvas1 = new java.awt.Canvas();
jTextField1 = new javax.swing.JTextField();
jSplitPane1.setDividerLocation(300);
jSplitPane1.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
jScrollPane1.setViewportView(canvas1);
jSplitPane1.setTopComponent(jScrollPane1);
jTextField1.setText("jTextField1");
jSplitPane1.setRightComponent(jTextField1);
由于这是我的第一个问题,我不允许在问题中嵌入图片,所以我将发布链接:
红色箭头表示分隔线的位置。
提前感谢您的宝贵时间。
【问题讨论】:
-
为什么使用
java.awt.Canvas而不是javax.swing.JPanel? -
因为我是 Swing 的新手,而 canvas 似乎适合我的目的,即在其上绘制形状。我也会看看 JPanel,看看它是否满足我的需求。
-
它将满足您的需求,并且是最佳选择,因为混合 AWT 和 Swing 组件并不好。应避免使用 AWT 组件。我真的不知道该怎么回答,因为我不明白你想做什么。
-
问题是画布会变大,但如果我想再变小,它不会调整大小。
标签: java swing jscrollpane jsplitpane