如何将两个jpanels并排放置 [英] how to put two jpanels side by side

查看:186
本文介绍了如何将两个jpanels并排放置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试将两个jpanel并排放置,但是在此刻我无法做我想做的事 我有这段代码,

I try to put two jpanels side by side, but in this moment i can not do what i want I have this code,

this.videoPanel= new JPanel();
this.videoPanel.setBackground(new Color(102, 102, 102));
this.videoPanel.setPreferredSize(new Dimension(320, 240));
this.videoPanel.setLayout(new BoxLayout(this.videoPanel, 1));

GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);

layout.setHorizontalGroup(
        layout.createSequentialGroup()
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
        .addComponent(this.videoPanel, 10, 400, 500)));

layout.setVerticalGroup(
        layout.createSequentialGroup()
        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
        .addComponent(this.videoPanel, 10, 400, 500)));

pack();

` 我尝试再放一个jpanel:

` I try to put one more jpanel:

 this.videoPanel1.setBackground(new Color(102, 102, 102));
 this.videoPanel1.setPreferredSize(new Dimension(320, 240));
 this.videoPanel1.setLayout(new BoxLayout(this.videoPanel1, 2));

 GroupLayout layout = new GroupLayout(getContentPane());
 getContentPane().setLayout(layout);



 layout.setHorizontalGroup(
         layout.createSequentialGroup()
         .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
         .addComponent(this.videoPanel1, 10, 400, 500)
         .addComponent(this.videoPanel, 10, 400, 500)));

 layout.setVerticalGroup(
         layout.createSequentialGroup()
         .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
         .addComponent(this.videoPanel1, 10, 400, 500)
         .addComponent(this.videoPanel, 10, 400, 500)));
      pack();

此代码不起作用,也不会给出错误.

this code don't work and also does not give error.

推荐答案

如果我正确理解了您的问题,则希望并排放置2个JPanel.看一下Layout GridLayout.

If I understand your question correctly, you want to place 2 JPanel side by side. Look at the Layout GridLayout.

您需要setLayout(new GridLayout(1,2));上面写着1行2列

You'd want setLayout(new GridLayout(1,2)); which says 1 Row, 2 Col

package SSCCE;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class SideBYSide extends JFrame{

    public static void main(String[] args) {
        new SideBYSide();
    }

    public SideBYSide(){
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(100, 75);
        this.setLayout(new BorderLayout());
        this.setVisible(true);

        JPanel container = new JPanel();
        JPanel panelOne = new JPanel();
        JPanel panelTwo = new JPanel();

        panelOne.add(new JLabel("1"));
        panelTwo.add(new JLabel("2"));

        container.setLayout(new GridLayout(1,2));
        container.add(panelOne);
        container.add(panelTwo);

        this.add(container);
    }

 }

这篇关于如何将两个jpanels并排放置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆