I have two Jpanel (JpanelLeft and JpanelLeftContent) how can i make the JpanelLeftContent fill parent size with a little margin on the lef
To make a JPanel appear rounded, you need to make your own class that extends JPanel, override paintComponent and draw the panel as an ellipse Javadoc here This will create a customized object which is an JPanel.
When you specify the size of your ellipse, you want to get the Y and X values from the parent panel (since you will be adding your ellipse ontop of another panel) and then subtract the number of pixels you desire from the X-axis. This could be achived by passing those values to the "ellipse panel" constructor.
Do try this code example :
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();
}
});
}
}
Here is the output of the same :
..how can i make the JpanelLeftContent look like a rounded rectangle as shown in the picture.
See TextBubbleBorder for a start.
Obviously you'd need to remove the little v
at the bottom, & shove the bottom border further down. The code is not comprehensively tested, and will require further tweaks and fixes. 'Batteries not included'.
Take a look at how Border
s work. Especially
BorderFactory.createEmptyBorder(int top, int left, int bottom, int right) might be helpfull.