ПредишенСледващото

Работа със заявлението може да се извършва не само с мишката, но клавиатурата. Важно е да се концепцията за фокус (фокус). За да бъде обработено в центъра на събитията, когато пишат Java приложения трябва да се използва FocusListener. Мисля, че всеки знае, че с такъв акцент. Въпреки това, бих искал да поговорим малко за това как аз разбирам понятието фокус. Фокус - е указател, който сочи, че компонент вече е активен и може да отговори на клавиатурата. само един компонент може да бъде в центъра на вниманието. Focus, обикновено показва правоъгълник с тънка линия (въпреки че това не винаги е така), или пунктирана правоъгълник. Фокус може да премине за да стигнем до желания компонент. Обикновено смяната на фокуса се извършва с помощта на клавиша Tab. Един добър пример е работата на фокусът е повече текстови полета, в което искате да въведете някои данни. В същото време ние не може да влезе - това е очевидно, така че трябва да има нещо, което казва това, което е в момента активен компонент и е възможно да се въвеждат данни от клавиатурата. Указателят сочи към една област, в която сме в момента, които въвеждат данните и има фокус. Фокусът може да бъде не само текстовите полета. Тя може, например, и бутони.

Понякога трябва да се извърши някакво действие, когато компонентът получава фокус, или обратното, когато тя се губи. Това се прави с помощта на всички слушатели. Когато компонент получава се съсредоточи, а когато тя генерира загуба система събитие, което трябва да следите и да отговори на него. За да отговори на събитието има специален фокус слушател FocusListener. Интерфейсът има два метода focusGained - наречен от системата, когато компонентът са получили фокус и focusLost - извиква, когато компонента губи съсредоточи. Всичко е просто. Прилагане интерфейс, напиши съответния код в методите, след което добавете получената слушателя към правилния компонент с метод addFocusListener.

Приложението за тест. Тя е много проста и се състои от две копчета. След като бутонът е "Бутон 2" получава или губи фокус, и призовава съответните методи slushaetlya фокусират, той веднага показва бутоните за текстови съобщения по-долу.

тест Външен вид приложение е показано на фигурата по-долу.

Focuslistener - слушате компонент фокус, Java люлка, както и други Java

Сорс кодът по-долу.

внос java.awt.BorderLayout;
внос java.awt.Dimension;
внос java.awt.event.FocusEvent;
внос java.awt.event.FocusListener;

внос javax.swing.JButton;
внос javax.swing.JFrame;
внос javax.swing.JLabel;
внос javax.swing.JPanel;

обществени клас TestFrame простира JFrame

частен JLabel eventLabel;

обществен TestFrame () супер ( "Тест рамка");

JPanel mainPanel = нови JPanel ();
mainPanel.setLayout (нов BorderLayout ());

JPanel buttonsPanel = нови JPanel ();

JButton button1 = нов JButton ( "бутон 1");
button1.setPreferredSize (ново измерение (150, 80));
buttonsPanel.add (button1);

JButton BUTTON2 = нов JButton ( "Бутон 2");
button2.setPreferredSize (ново измерение (150, 80));
buttonsPanel.add (BUTTON2);

eventLabel = нов JLabel ();
eventLabel.setHorizontalAlignment (JLabel.CENTER);
mainPanel.add (eventLabel, BorderLayout.CENTER);

публично статично JLabel createEmptyLabel () JLabel етикет = нов JLabel ();
label.setPreferredSize (ново измерение (100, 30));
върнете етикет;
>

публично статично невалидни основни (String [] аргументи) javax.swing.SwingUtilities.invokeLater (нова Изпълнима () обществени нищожен план () JFrame.setDefaultLookAndFeelDecorated (вярно);
JFrame рамка = нов TestFrame ();
frame.setPreferredSize (ново измерение (330, 160));
frame.pack ();
frame.setLocationRelativeTo (нула);
frame.setVisible (истина);
>
>);
>

обществени клас CustomListener изпълнява FocusListener

обществени невалидни focusGained (FocusEvent д) eventLabel.setText ( "Бутон 2 - focusGained ()");
>

обществени невалидни focusLost (FocusEvent д) eventLabel.setText ( "Бутон 2 - focusLost ()");
>
>
>

Подкрепете проекта - споделете линка, благодаря!