《Java语言程序设计:基础篇》课后复习题答案
Chapter15Graphics
1.
2.Theycoordinateshouldincreaseandthexcoordinateshouldremainunchanged.TheGraphicsclass–anabstractclass—providesa
device-independentgraphicsinterfacefordisplayingfiguresandimagesonthescreenondifferent
platforms.Wheneveracomponent(e.g.,abutton,alabel,apanel)isdisplayed,theJVMautomaticallycreatesaobjectforthecomponentonthenativeplatformandpassesthisobjecttoinvokethepaintComponentmethodtodisplaythedrawings.
ThepaintComponent()methodisdefinedintheComponentclass.TheJavaruntimesysteminvokesittopaintthingsonaSwingGUIcomponent.Thismethodcannotbeinvokedbythesystemorbytheprogrammer.Thesystemautomaticallyinvokesitwhenevertheviewingareachanges.Theprogrammerinvokesitthroughinvokingtherepaint()method.TheprogrammershouldneverdirectlyinvokethepaintComponent()method.
ThepaintComponent()methodisprotected,because(1)thismethodisalwaysinvokedbytheJVM,notbyaclientprogram;(2)theclientprogramneedtooverrideitinasubclass.
Ifitischangedtopublic,itisOK,butnotnecessary,becausetheprotectedmodifierissufficient.
Itcannotbechangedtoprivate,becausethevisibilitycannotbeweakened.super.paintComponent(g)invokesthesuperclass’spaintComponentmethod.InLine12inListing12.2,itcausesthetextofthelabeltobepaintedfirst.Beforethistextisdisplayed,theJLabel’spaintComponent(g)methodactuallyinvokessuper.paintComponent(g)tocleartheviewingarea.InLine20inListing12.3,itcausestheviewingareatobecleared.
5.Yes.YoushoulddeclareacustomcanvasbysubclassingJPanelratherthan
subclassingJLabelorJButton,becauselabelsaredesignedforthepurposetodisplayalabelorandbuttonsareforshowingapushbutton.
SeetheSections12.6,12.8,and12.9.
SeetheSections12.6,12.8,and12.9.
YoucanusethesetColor(Color)tosetacolorinthegraphicscontextandusethesetFont(Font)methodtosetafontinthegraphicscontext.3.4.6.7.8.