设置JPanel的大小来填充父很少保证金(Set the JPanel size to fill p

2019-06-23 14:25发布

我有两个JPanel的(JpanelLeftJpanelLeftContent)我怎样才能使JpanelLeftContent填写家长的大小与左边的右边一点余量。 我曾尝试不同的布局,并试图修改hgap指定,vgap值,但是没有人给我一个很好的结果。

  JPanel JpanelLeft = new JPanel();
  JPanel JpanelLeftContent = new JPanel();
  JpanelLeft.add(JpanelLeftContent);

如果可能的话我怎样才能让JpanelLeftContent看起来像一个圆角矩形如图片所示。

Answer 1:

看看如何Border的工作。 特别
BorderFactory.createEmptyBorder(int top, int left, int bottom, int right)可能是有益的。



Answer 2:

..how我可以使JpanelLeftContent看起来像一个圆角矩形所示的图片。

TextBubbleBorder的一个开始。

显然,你需要删除的小v底部,与推下边框进一步下跌。 该代码没有经过全面测试,并需要进一步的调整和修正。 “不包括电池”。



Answer 3:

不要尝试这个代码示例:

import java.awt.*;
import javax.swing.*;

public class InsetTesting extends JFrame
{
    private void createAndDisplayGUI()
    {
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setLocationByPlatform(true);

        JPanel contentPane = new JPanel();
        contentPane.setOpaque(true);
        contentPane.setBorder(BorderFactory.createLineBorder(
                                    Color.DARK_GRAY.darker(), 5, true));
        contentPane.setBackground(Color.WHITE);

        add(contentPane, BorderLayout.CENTER);
        pack();
        setVisible(true);
    }

    public Insets getInsets()
    {
        return (new Insets(30, 20, 10, 20));
    }

    public Dimension getPreferredSize()
    {
        return (new Dimension(200, 400));
    }

    public static void main(String\u005B\u005D args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                new InsetTesting().createAndDisplayGUI();
            }
        });
    }
}

下面是相同的输出:



Answer 4:

为了使一个JPanel出现圆形,你需要使自己的类继承JPanel,重写paintComponent,绘制面板是椭圆的Javadoc在这里这将创建一个自定义的对象,它是一个JPanel的。

当您指定椭圆的大小,你想从父面板内的Y和X值(因为你会加入你的椭圆ontop的另一面板),然后减去你从X轴渴望的像素数。 这可以通过这些值传递到了“椭圆形面板”构造函数achived。



文章来源: Set the JPanel size to fill parent with little margin