Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
313 views
in Technique[技术] by (71.8m points)

java - JPanel said to be opaque what does that mean?

In Swing JPanel said to be opaque, what does that mean?

Also how JPanel VS JComponent compared in relation to opaque?

Please explain if possible in simple terms, hence i am not very experienced in GUI programming.

Thanks in advance for your help

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Opaque has a very specific meaning in Swing - it means that the component fully paints the full area within its bounds (see the setOpaque javadoc)

This is used primarily to determine whether it is necessary to repaint components behind the current component.

  • If isOpaque is true, it is unnecessary to repaint anything behind the component (since it would just be overwritten), hence such background drawing may be omitted as an optimisation.
  • If isOpaque is false, then it indicates that the component is implementing some transparency effects - e.g. drawing a component that has a semi-transparent window in the middle, or drawing a non-rectangular component

If you are creating your own JComponent and setOpaque to true but do not honour the contract (i.e. you do not draw the full area within the bounds despite claiming to be opaque) then you may get unexpected results due to the background not being redrawn.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...