-Event Handler GUI Previous We already build a GUI for application (using IDE ex. Net Beans) Next Control interaction between GUI and USER (make it work) Basic Idea –Delegation Model Event – Objects that describe what happened Event source – The generator of an event’ For example, a mouse click on a Button component generates an ActionEvent with the button as the source Event handlers – A Method that receives an event object, deciphers it, and processes the user’s interaction Delegation Model 1. User click this button
2. An Object that type is
ActionEvent automatically generated
3. The Code in event
Handler that assosiate whit the event Execute How That Things Can be Done? [1] User click a Button it means the button has capabilities to generate event (became event-source) There were an interface that commonly named “Listener” in this case we use ActionListener It means that we must have a class that implements “Listener” so we can create a Object to Listen what’s going on? How That Things Can be Done?[2] User click a Button (cont’d) Simple way (manually) Make the frame implements ActionListener, consequently we must “realize” method from ActionListener Interface How That Things Can be Done?[3] User click a Button (cont’d) Now our class has capabilities to “Listening” what’s going on and what had to do if something happen? Is it finish?? => Who is the target to “Listening” , in this example is Now we must add the to the list of object to be “Listening” How That Things Can be Done?[4] User click a Button (cont’d)
With this code, if some user click the
ButtonAdd the event can be detected by the “Listener” [process 1 and 2 finish] How That Things Can be Done?[5] Make Event Handler From the previous code we know that there are two posible event source [ButtonAdd,ButtonMul] and the handle code is different We must know which button is click by the USER (the event is same ActionEvent but the EventSource is different) How That Things Can be Done?[6] Make Event Handler Result More Technique Please pay Attention Simple way (manually) So is there another sophisticated way? Do we need It? Another way is to separated the event-handler code from the GUI code => achieve more “Reusability” Huaaaa…. Sueetress bo,…
Semangat biar ntar
lulus dapet kerja
Ampun Pak… Kok
banyak banget caranya??
Baca buku lagi
dech.. Duh mumet euy Another Ways This knowledge can help U to understand the basic of MVC model, so keep your spirit on fire!!! The main idea is to split the code for event-handler with the GUI-code, Another Ways Step-by-step Create another class to implements the “Listener interface” Make method for handler and adjustment the code specially on access specifier issue Create Object of handler Register the object to be “snipe” to object handler Another Ways [step1, step2] Another Ways [step2] Adjustment on class for GUI Another Ways [step 3, step 4] We now modified the code in GUI class for: instantiate object of handler Connect the handler and gui Register object that involve in generate the event Another Ways [step 3, step 4] The GUI class doesn’t has to implements the Listener interface, because there is another class who has that responsibility Another Ways Run the code and you will get the same result with the first technique So what the benefit we can get, it more complicated ?? Benefit Reusability When we separate the handler code from GUI code, we can use it for different GUI it make our code more suitable and easy To show it, let’s make another GUI with different Look/Component but have same purpose Different Look GUI same purpose Tipe2
This GUI had different look with the
first GUI, and the Component to view The Result is different with the first GUI The Code [1] Our target is to use the handler code without adjustment The adjustment only in the GUI Code There is a problem in the previous definition of handler class the type for guinya is Tipe1,we must change it to Tipe2 in order to make it work!! The Code [2] Solution Create an Interface and Tipe1 and Tipe2 should implements this interface TipeUTAMA
Tipe1 Tipe2
Change the tipe of guinya in event
handles class to TipeUtama The Code [3] The Code [4] Now guinya tipe is TipeUtama, but there is a problem => when we use reference tipe interface we can only call method that has been define in the interface The Code [4] Solution Add prototype of the method that we will use in the event handler calss (related to GUI class) The Code [4] Make adjustment code in class Tipe 2 The Code [5] Set the main project to Tipe2 and woala the program run and have same function with the first one Result Next->Konsep MVC
VIEW CONTROL MODEL
[GUI] [Event- [Data Handler] /Proses] Any Question ??