12. Java Swing Individual Project 2 - Donald Bren …minhaenl/class/2015/summer/12. Swing2.pdf ·...

Preview:

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/