Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing拆分窗格视图布局_Java_Swing_View_Split_Pane - Fatal编程技术网

Java Swing拆分窗格视图布局

Java Swing拆分窗格视图布局,java,swing,view,split,pane,Java,Swing,View,Split,Pane,您好,我正在实现我的第一个拆分窗格视图,它似乎对我不起作用,我得到以下输出 这是代码 //Create Album Panel albumPanel.setLayout(new FlowLayout()); //Add List view albumList.setMinimumSize (new Dimension(150,150)); albumPanel.add(new JScrollPane(albumList)); //Add Text

您好,我正在实现我的第一个拆分窗格视图,它似乎对我不起作用,我得到以下输出

这是代码

//Create Album Panel
    albumPanel.setLayout(new FlowLayout());

    //Add List view
    albumList.setMinimumSize (new Dimension(150,150));
    albumPanel.add(new JScrollPane(albumList));


    //Add Text Area
    textArea.setLineWrap(true);
    textArea.setWrapStyleWord(true);
    textArea.setEditable(false);
    textArea.setMinimumSize (new Dimension(150,150));
    albumPanel.add(textArea);

    //Split Pane
    JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, albumList, textArea);

    albumPanel.add(splitpane, BorderLayout.CENTER);

您需要向JSplitPane添加组件,即保存列表和文本区域的JScrollPane,以便JSplitPane显示它们。是的,正如David所说(对他来说是1+),保存JSplitPane的容器需要能够让它扩展,而BorderLayout可以很好地实现这一点


此外,不要多次向容器中添加组件。将组件添加到jscrollpane,然后将jscrollpane添加到JSplitPane。也不要将组件添加到albumPanel容器中。在这方面,您的代码有点精神分裂。

您已将
相册面板
布局设置为
FlowLayout
,但在添加到
JSplitPane
时,您尝试使用
BorderLayout
常量:

albumPanel.add(拆分窗格,BorderLayout.CENTER)

您应该通过
newborderlayout()将
albumPanel
布局设置为
BorderLayout


另外,设置组件的大小也不是一个好主意,让
布局管理器为您做吧。

我想他在构建拆分窗格时做了。请看文档:是的,你是对的。他的代码有点精神分裂,因为他将组件添加到JScrollPanes,然后将它们添加到JPanel,然后将相同的组件添加到拆分窗格???