java – 在jsplitpane中的jscrollpane中调整canvas的问题
发布时间:2020-12-14 23:21:45 所属栏目:Java 来源:网络整理
导读:我正在使用NetBeans GUI编辑器创建一个应用程序,我希望在其中有一个JSplitPane,其顶部组件将是JScrollPane中的Canvas,底部组件将是JTextArea,或类似的东西. 当我向下拉分隔器,从而增加顶部组件的大小时,一切似乎都调整得很好. 当我试图向上推动分频器时出现
我正在使用NetBeans GUI编辑器创建一个应用程序,我希望在其中有一个JSplitPane,其顶部组件将是JScrollPane中的Canvas,底部组件将是JTextArea,或类似的东西.
当我向下拉分隔器,从而增加顶部组件的大小时,一切似乎都调整得很好. 当我试图向上推动分频器时出现问题: 我已经尝试了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); 由于这是我的第一个问题,我不允许在问题中嵌入图像,因此我将发布链接: 红色箭头表示分隔线的位置. 在此先感谢您的时间. 解决方法
而不是
setPreferredSize() ,让您的组件计算自己的首选大小,并打包()封闭的窗口以容纳.下面的示例在顶部添加了一个
draw.GraphPanel 实例,在底部添加了一个相应的控制面板.
import draw.GraphPanel; import java.awt.EventQueue; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; /** * @see https://stackoverflow.com/q/11942961/230513 */ public class SplitGraph extends JPanel { public SplitGraph() { super(new GridLayout()); JSplitPane split = new JSplitPane(JSplitPane.VERTICAL_SPLIT); GraphPanel graphPanel = new GraphPanel(); split.setTopComponent(new JScrollPane(graphPanel)); split.setBottomComponent(graphPanel.getControlPanel()); this.add(split); } private void display() { JFrame f = new JFrame("SplitGraph"); f.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); f.add(this); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new SplitGraph().display(); } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |