Focuslistener - hallgassa a komponens fókuszát, java swing-et és más java-t
Munka az alkalmazás lehet végezni nem csak az egérrel, de a billentyűzet. Fontos, hogy a koncepció a fókuszt (focus). Feldolgozni a hangsúly az események írásakor Java alkalmazásokat kell használni FocusListener. Azt hiszem, mindenki tudja, hogy egy ilyen téma. Azonban szeretnék beszélni egy kicsit arról, hogyan érti a koncepciót a hangsúly. Focus - egy mutató, amely jelzi, hogy egy alkatrész már aktív, és nem reagál a billentyűzetre. csak az egyik összetevője lehet a középpontban. Focus, általában megjelenik egy téglalap, benne egy vékony vonal (bár ez nem mindig van így), vagy pontozott téglalapot. Focus válthat eljutni a kívánt komponenst. Általában a hangsúly átkapcsolás történik a Tab billentyűt. Jó példa erre a munka a hangsúly inkább a szöveges mezők amire szeretné, hogy meg néhány adatot. Ugyanakkor nem tudjuk meg - ez nyilvánvaló, így ott kell lennie valaminek, ami azt mondja, amit komponens aktív, és lehetőség van az adatok bevitelére a billentyűzetről. A pointer mutat egy olyan területen, ahol jelenleg bevitte és fókuszt. Focus lehet nem csak szöveges mezők. Ez lehet például, és a gombok.
Néha meg kell végezni néhány intézkedés, ha a komponens fókuszba, vagy fordítva, ha elveszik. Ez történt a segítségével az összes hallgatók. Ha az összetevő fókuszba, és amikor ez generálja a rendszer káresemény, amely kell követni, és reagálnak rá. Válaszul az esemény különös hangsúlyt hallgató FocusListener. A felület két módszer focusGained - hívják a rendszer, ha a komponens fókuszba és focusLost - úgynevezett amikor az alkatrész elveszti a fókuszt. Minden egyszerű. Egy interfész megvalósításához levelet a megfelelő kódot a módszerek, majd hozzáadjuk a kapott hallgató a megfelelő komponenst addFocusListener módszerrel.
A teszt alkalmazása. Ez nagyon egyszerű, és két gomb. Ha a gomb „gomb 2” kap vagy veszít a fókuszt, és felszólítja a megfelelő módszerek slushaetlya koncentrálni, akkor azonnal megjeleníti az üzenetet az alábbi gombok.
A vizsgálati alkalmazás megjelenése az alábbi ábrán látható.
A forráskód alacsonyabb.
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
nyilvános osztályú TestFrame kiterjeszti a JFrame rendszert
privát JLabel eventLabel;
nyilvános TestFrame () super ("Test frame");
JPanel mainPanel = új JPanel ();
mainPanel.setLayout (új BorderLayout ());
JPanel buttonsPanel = új JPanel ();
JButton gomb1 = új JButton ("Button 1");
button1.setPreferredSize (új dimenzió (150, 80));
buttonsPanel.add (button1);
JButton gomb2 = új JButton ("Button 2");
button2.setPreferredSize (új dimenzió (150, 80));
buttonsPanel.add (button2);
eventLabel = új JLabel ();
eventLabel.setHorizontalAlignment (JLabel.CENTER);
mainPanel.add (eventLabel, BorderLayout.CENTER);
nyilvános statikus JLabel createEmptyLabel () JLabel label = új JLabel ();
label.setPreferredSize (új dimenzió (100, 30));
visszatérési címke;
>
public static void main (String [] args) javax.swing.SwingUtilities.invokeLater (új futtatható () public void run () JFrame.setDefaultLookAndFeelDecorated (true);
JFrame keret = új TestFrame ();
frame.setPreferredSize (új dimenzió (330, 160));
frame.pack ();
frame.setLocationRelativeTo (null);
frame.setVisible (true);
>
>);
>
nyilvános osztály A CustomListener implementálja a FocusListener-et
public void focusGained (FocusEvent e) eventLabel.setText ("2. gomb - focusGained ()");
>
public void focusLost (FocusEvent e) eseményLabel.setText ("2. gomb - focusLost ()");
>
>
>