当前位置: 首页 > 知识库问答 >
问题:

如何将框架分成两部分

华谭三
2023-03-14

这是为了俄罗斯方块。玻璃(蓝色)位于左侧,控制(红色面板)位于右侧。换句话说,现在我只想有一个框架分成两部分:左边(较宽)部分是蓝色,右边部分是红色。没别的了。但我似乎没能做到这一点。

所以,我的逻辑是:让框架有FlowLayout。然后,我添加了两个面板,这意味着它们将被放在一个行中。

public class GlassView extends JFrame{
    public GlassView(){
        this.setSize(600, 750);
        this.setVisible(true);
        this.setLayout(new FlowLayout());
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


        JPanel glass = new JPanel();
        glass.setLayout(new BoxLayout(glass, BoxLayout.Y_AXIS));
        glass.setSize(450, 750);
        glass.setBackground(Color.BLUE);
        glass.setVisible(true);
        this.add(glass);

        JPanel controls = new JPanel();
        controls.setLayout(new BoxLayout(controls, BoxLayout.Y_AXIS));
        controls.setSize(150, 750);
        controls.setBackground(Color.RED);
        controls.setVisible(true);
        this.add(controls);
    }
}

共有1个答案

贺宝
2023-03-14

正如Amir所说,您希望为此使用JSplitPane。我已经在您的代码中添加了这一点。看看这个。

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    GlassView view = new GlassView();
}

private static class GlassView extends JFrame {

    private int width = 600;
    private int height = 750;

    public GlassView() {
        this.setSize(width, height);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JPanel glass = new JPanel();
        glass.setSize(450, 750);
        glass.setBackground(Color.BLUE);
        glass.setVisible(true);

        JPanel controls = new JPanel();
        controls.setSize(150, 750);
        controls.setBackground(Color.RED);
        controls.setVisible(true);

        JSplitPane splitPane = new JSplitPane();
        splitPane.setSize(width, height);
        splitPane.setDividerSize(0);
        splitPane.setDividerLocation(150);
        splitPane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setLeftComponent(controls);
        splitPane.setRightComponent(glass);

        this.add(splitPane);
    }
}
 类似资料:
  • 问题内容: 这是给俄罗斯方块的。玻璃(蓝色)位于左侧,控件(红色面板)位于右侧。换句话说,现在我只想将框架分为两部分:左(较宽)部分是蓝色,右部分是红色。而已。但是我似乎没有做到这一点。 因此,我的逻辑是:让框架具有FlowLayout。然后,我添加了两个面板,这意味着它们应该连续放置。 我准备了这个: 但是在屏幕上仅可见灰色框。你能帮我理解为什么吗? 问题答案: 正如Amir所说,您想为此使用J

  • 问题内容: 我想要一个表将显示一半的行,然后环绕并水平包装并显示另一半行,而不是一个长的垂直表。 我正在使用角度数据,希望能够将一个数据数组绑定到一张表,但是要像描述的那样将其水平跨两个部分。两个表是一个选项,但是这意味着我必须添加更多逻辑,如果可能的话,我希望避免使用。即,对于排序ID,必须先将数据集重新连接在一起并对其进行排序,然后再进行拆分。 任何指针表示赞赏。 问题答案: 您可以尝试使用C

  • The Play framework is built using Akka, and is well suited for building both full web applications as well as REST services. The Spray toolkit is built using Akka, and is a minimalistic HTTP/REST laye

  • 问题内容: 我有一个巨大的CSV文件,其中包含许多行很多的表。我想简单地将每个数据框拆分成2个(如果包含10行以上)。 如果为true,我希望第一个数据框包含前10个,其​​余的包含在第二个数据框中。 有便利的功能吗?我环顾四周,但发现没有什么用处… 即? 问题答案: 如果满足条件,这将返回拆分的DataFrames,否则返回原始的和(然后您将需要分别处理)。请注意,这假设拆分仅需每次进行一次,并

  • 我试图将一个数据列表一分为二,但我不知道如何正确执行。 当我使用dput(a)时,我的数据如下 结构(列表)(V1=结构(c(1L、9L、10L、11L、12L、13L、14L、15L、16L、2L、3L、4L、5L、6L、7L、8L)。标签=c(“1\t1200.30”,“10\t1305.80”,“11\t1263.02”,“12\t1312.67”,“13\t1229.85”,“14\t12

  • 问题内容: 我有一个奇怪的问题要问。我需要知道如何使用Java(任何文件类型)将给定的文件分成小块。然后,我可以将这些光盘放入CD,笔式驱动器中,然后带走。我用这种方式尝试过 但是正如大多数用户评论的那样,我正在尝试的事情无法通过这种方式实现。因此,我决定提出一个新问题,以获取正确的方法来破坏文件。 当我将文件分解成碎片(猜测是30个碎片)时,必须有一种方法可以将它们重新组合起来并重新创建原始文件