我有两个JPanel的(JpanelLeft和JpanelLeftContent)我怎样才能使JpanelLeftContent填写家长的大小与左边的右边一点余量。 我曾尝试不同的布局,并试图修改hgap指定,vgap值,但是没有人给我一个很好的结果。
JPanel JpanelLeft = new JPanel();
JPanel JpanelLeftContent = new JPanel();
JpanelLeft.add(JpanelLeftContent);
如果可能的话我怎样才能让JpanelLeftContent看起来像一个圆角矩形如图片所示。
看看如何Border
的工作。 特别
BorderFactory.createEmptyBorder(int top, int left, int bottom, int right)
可能是有益的。
..how我可以使JpanelLeftContent看起来像一个圆角矩形所示的图片。
见TextBubbleBorder
的一个开始。
显然,你需要删除的小v
底部,与推下边框进一步下跌。 该代码没有经过全面测试,并需要进一步的调整和修正。 “不包括电池”。
不要尝试这个代码示例:
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();
}
});
}
}
下面是相同的输出:
为了使一个JPanel出现圆形,你需要使自己的类继承JPanel,重写paintComponent,绘制面板是椭圆的Javadoc在这里这将创建一个自定义的对象,它是一个JPanel的。
当您指定椭圆的大小,你想从父面板内的Y和X值(因为你会加入你的椭圆ontop的另一面板),然后减去你从X轴渴望的像素数。 这可以通过这些值传递到了“椭圆形面板”构造函数achived。