Upload
lykhue
View
215
Download
0
Embed Size (px)
Citation preview
12.JavaSwingIndividualProject2
MinhaengLee
IEDUProgrammingAc@vity,Summer,2015
JavaSwing?
• JavaGUIbuildinglibrary• Notveryfamousforstandaloneapplica@on– Slow(becauseofJVM)– Currenttrendsmovetoweb
• S@llusefulandworthtotry• Logicsaresame• hPp://docs.oracle.com/javase/tutorial/uiswing/
NecessaryComponents
• JK,JW– Drawing
• JM– CoverFlow
• Aiden– Miglayout
• Sien– Flippinganima@on?
Whyothers’source?
• Difficultandinefficienttomakefromscratch
BasicJComponents
• JFrame– MostBasicComponenttomakewindow– Onepereachwindow– Windowasis
• JPanel– Commoncomponentinsideofawindow– Mul@pleineachwindow
• JBuPon,JLabel,JTextArea…etc.
Components
JFrame
JPanel
JScroll
JLabel JtextinputJLabel JtextinputJLabel JtextinputJBuPon JBuPon JBuPon
YourfirstSwingExample
RunHelloWorldSwing.javainExampleSwingproject
Doesyourownlooklikethis?
FileChooser
RunFileChooserDemo.javainExampleSwingproject
TabandBorder
RunBorderDemo.javainExampleSwingproject
Text,Password,….moreandmore
RunTextDemo.javainExampleSwingproject
RunPasswordDemo.javainExampleSwingproject
Whatdoyouneed?Checkheregreatexamples:h=p://docs.oracle.com/javase/tutorial/uiswing/examples/components/index.html
LookAndFeel
• SkinforjavaGUI• Easytoapply• Anumberofresources:ex)hPp://www.jyloo.com/synthe@ca/themes/
Sourcemanagementtools• Famoustools
– CVS– SubVersion– GIT– Etc.
• Necessaryforsourcemanagement– Versioncontrol– Coopera@on– Usefultoshowyourworktopublic!
UsingExternalLibraryforEclipse
• AddingLibrarypathtobuildpath• Whenlibraryimportproblemhappened!
UsingExternalLibraryforEclipse(1/3)
Rightclickontheproject->Proper@es Click“AddJARs”
UsingExternalLibraryforEclipse(2/3)
SelectRequired“jar”sThenclickok CheckthejarlistandthenClickok
UsingExternalLibraryforEclipse(3/3)
Successfullyaddanderrorfixed!
HowcanIgetrequiredlibrary?• Mostlyontheweb• UseGoogle• Readpublisher’sdocumentcarefully• Searchusingpackagename• Inthiscase
– Keyword:“org.pushingpixels.substancejar”
IndividualProject:Tetris• Basic
– GetBlock(andother)images– Genera@on2DMap– Keyinput– ThreadbasedTimingControl
• Framecontrol– Game,Score,Nextzone
• Advanced– Con@nuefromprevious– Item– AutoPlay
IndividualProject:SneakGame• Basic
– GetSneakPartsimages– Generate2DMap– Keyinput– ThreadbasedTimeControl
• Framecontrol– Game,Scorezone
• Advanced– Con@nuefromprevious– Item– AutoPlay
IndividualProject:MusicPlayer• Basic
– GetrequiredbuPonimages(play,stop…etc.)– CoverFlow(templateprovided)
• ExampleGUI–CoverFlowDemo.java– FileScanning– Fileload/save– PlayListManagement– MusicPlay/Stop
• Advanced– MusicEqualize
IndividualProject:Calendar
• Basic– Datecontrol– JComponents– LayoutusingMigLayout(ExampleProvided)
• ExampleGUI–DashboardDemo.java,SwingDemo.java– EventAdd/Delete/Edit
• Advanced– Synctotheweb
IndividualProject:Flashcards
• Basic– Layout– Filemanagement(read/write)
• Advanced– FancyGUI– Onlinedatamanagement
Homework
• RecordYourProgressduringweek– WhatProblemyouhave– Whathaveyoudone– Noprogress,nothingtolearn
• ReadLayoutSource– ExampleGUI–DashboardDemo.java
JavaSwingMenu
JavaSwingMenu
Jframe
JPanel
JMenu
ReadMenuDemo.java
BuPonandevent
ReadBuPonDemo.java
Layouts
• FlowLayout• BorderLayout• AbsoluteLayout…
References
• hPp://docs.oracle.com/javase/tutorial/uiswing/