I have a panel derived from JPanel
. I have a custom control derived from JLabel
. I am attempting to center this custom JLabel
on my panel.
The only way I know to do this that will work is to use the a null layout (setLayout(null)
) and then calculate the custom JLabel's setLocation()
point so that it's in the right spot.
The custom JLabel
is physically moved from one panel to this panel in this app and I believe the location previously set in setLocation
is affecting things. However when I set it to (0,0) the component goes up into the upper left corner.
BorderLayout
doesn't work because when only 1 component is provided and placed into BorderLayout.CENTER
, the central section expands to fill all of the space.
An example I cut and pasted from another site used BoxLayout
and component.setAlignmentX(Component.CENTER_ALIGNMENT)
. This didn't work either.
Another answer mentioned overriding the panel's getInset()
function (I think that's what it was called), but that proved to be a dead end.
So far I'm working with a panel with a GridBagLayout
layout and I include a GridBagConstraints
object when I insert the custom JLabel
into my panel. This is inefficient, though. Is there a better way to center the JLabel
in my JPanel
?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…