Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ)Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 118

Автор Π¨ΠΈΠ»Π΄Ρ‚ Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚

Как ΠΈ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JButton, с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ JTextField связываСтся конкрСтная ΠΊΠΎΠΌΠ°Π½Π΄Π° дСйствия Π² Π²ΠΈΠ΄Π΅ символьной строки. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½Π° соотвСтствуСт Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ содСрТимому поля Π²Π²ΠΎΠ΄Π° тСкста, хотя Π² Ρ‚Π°ΠΊΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ. Π§Π°Ρ‰Π΅ всСго устанавливаСтся фиксированноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setActionCommand (), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:void setActionCommand(String cmd)

Бимвольная Ρ‚Ρ€ΠΎΠΊΠ°, пСрСдаваСмая Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° cmd, становится Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ дСйствия, Π° тСкст Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста Π½Π΅ мСняСтся. УстановлСнная символьная строка ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия остаСтся постоянной, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ тСкст вводится Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊ явной установкС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия ΠΏΡ€ΠΈΠ±Π΅Π³Π°ΡŽΡ‚ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ распознаваниС поля Π²Π²ΠΎΠ΄Π° тСкста ΠΊΠ°ΠΊ источника, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ событиС дСйствия. ΠŸΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ приходится Π² Ρ‚ΠΎΠΌ случаС, Ссли Π² Ρ€Π°ΠΌΠΊΠ΅ ΠΎΠΊΠ½Π° находится нСсколько элСмСнтов управлСния, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий. Установив ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ дСйствия, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π² своС распоряТСниС ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ срСдство для различСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Если ΠΆΠ΅ Π²Ρ‹ Π½Π΅ установитС явно ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ дСйствия для поля Π²Π²ΠΎΠ΄Π° тСкста, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚ΡŒ затруднСния ΠΏΡ€ΠΈ распознавании источника события, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Π² ΠΏΠΎΠ»Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ тСкст, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ дСйствия Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ строку, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста, слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ экзСмпляру класса JTextField ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getText (). ОбъявлСниС этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½ΠΈΠΆΠ΅.String getText()

Π—Π°Π΄Π°Ρ‚ΡŒ тСкст для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JTextField ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setText (), объявляСмого ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:void setText(String тСкст)

Π³Π΄Π΅ тСкст β€” это символьная строка, размСщаСмая Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JTextField. Π’ ΠΎΠΊΠ½Π΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТатся ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста, ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ Π΄Π²Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ. Одна ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠΊ подсказываСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ввСсти тСкст Π² ΠΏΠΎΠ»Π΅. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ (ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ фокус Π²Π²ΠΎΠ΄Π° находится Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста), Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Ρ‹ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠ΅. На ΠΊΠ½ΠΎΠΏΠΊΠ΅ отобраТаСтся надпись Reverse (ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ). ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ этой ΠΊΠ½ΠΎΠΏΠΊΠΈ содСрТимоС поля Π²Π²ΠΎΠ΄Π° тСкста прСобразуСтся ΠΈ замСняСтся Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅. Окно, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° экранС ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° рис. 15.3.// ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ поля Π²Π²ΠΎΠ΄Π° тСкста.import java.awt.*;import java.awt.event.*;import javax.swing.*;class TFDemo implements ActionListener { JTextField jtf; JButton jbtnRev; JLabel jlabPrompt, jlabContents; TFDemo() { // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JFrame JFrame jfrm = new JFrame("Use a Text Field"); // ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ диспСтчСр ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ FlowLayout jfrm.setLayout(new FlowLayout()); // Π·Π°Π΄Π°Ρ‚ΡŒ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π° jfrm.setSize(240, 120); // Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ послС закрытия ΠΎΠΊΠ½Π° jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ поля Π²Π²ΠΎΠ΄Π° тСкста ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ 10 символов. jtf = new JTextField(10); // Установка ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия для поля Π²Π²ΠΎΠ΄Π° тСкста. jtf.setActionCommand("myTF"); // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Reverse JButton jbtnRev = new JButton("Reverse") ; // Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠ² событий ΠΎΡ‚ поля Π²Π²ΠΎΠ΄Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. jtf.addActionListener(this); jbtnRev.addActionListener(this) ; // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ jlabPrompt = new JLabel("Enter text: "); jlabContents = new JLabel(""); // Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ содСрТимого jfrm.add(jlabPrompt); jfrm.add(jtf); jfrm.add(jbtnRev); jfrm.add(jlabContents) ; // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° jfrm.setVisible(true); } // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ поля Π²Π²ΠΎΠ΄Π° тСкста. public void actionPerformed(ActionEvent ae) { // Для опрСдСлСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ событиС, // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° дСйствия. if(ae.getActionCommand().equals("Reverse")) { // НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ Reverse. String orgStr = jtf.getText(); String resStr = ""; // ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ строку Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста for(int i=orgStr.length()-1; i >=0; iβ€”) resStr += orgStr.charAt(i); // ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½Π½ΡƒΡŽ строку Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста jtf.setText(resStr); } else // НаТатиС клавиши <Enter> Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° фокус // Π²Π²ΠΎΠ΄Π° находится Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста, jlabContents.setText("You pressed ENTER. Text is: " + jtf.getText()); } public static void main(String args[]) { // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ диспСтчСризации событий SwingUtilities.invokeLater(new Runnable() { public void run() { new TFDemo(); } }) ; }}

Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ) - _10.jpg

Рис. 15.3. Окно, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ TFDemo

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°ΠΌ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠ°, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° тСкста связана ΠΊΠΎΠΌΠ°Π½Π΄Π° дСйствия "myTF". Π’Π°ΠΊΠΎΠ΅ связываниС осущСствляСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π°:jtf.setActionCommand("myTF");

ПослС выполнСния этой строки ΠΊΠΎΠ΄Π° символьная строка ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия всСгда ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "myTF" нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ тСкст Π²Π²Π΅Π΄Π΅Π½ Π² ΠΏΠΎΠ»Π΅. Благодаря этому ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ситуация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π° дСйствия, связанная с ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° тСкста, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ дСйствия, связанной с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Reverse. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ actionPerformed () установлСнная ΠΊΠΎΠΌΠ°Π½Π΄Π° дСйствия ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для распознавания Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стал источником события. Если символьная строка ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "Reverse", это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ: событиС наступило Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‰Π΅Π»Ρ‡ΠΊΠ° Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Reverse. Π˜Π½Π°Ρ‡Π΅ слСдуСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ событиС наступило Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ наТатия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ клавиши Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° фокус Π²Π²ΠΎΠ΄Π° находился Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΊΠΎΠ΄Π° Π² Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°actionPerformed():jlabContents.setText("You pressed ENTER. Text is: " + jtf.getText());

Как пояснялось Π²Ρ‹ΡˆΠ΅, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° фокус Π²Π²ΠΎΠ΄Π° находился Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста, формируСтся событиС ActionEvent, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ пСрСсылаСтся всСм зарСгистрированным ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°ΠΌ событий дСйствия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° actionPerf ormed (). Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ TFDemo этот ΠΌΠ΅Ρ‚ΠΎΠ΄ лишь Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ getText (), извлСкая тСкст, содСрТащийся Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ jtf (ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° тСкста). ПослС этого тСкст отобраТаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ссылаСтся пСрСмСнная j labContents.Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JCheckBox

Если ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‚ΠΎ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ мСстС ΠΏΠΎ частотС употрСблСния, бСзусловно, стоят Ρ„Π»Π°ΠΆΠΊΠΈ. Π’ Swing эти элСмСнты ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Ρ‚ΠΈΠΏΠ° JCheckBox. Класс JCheckBox являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ классов AbstractButton ΠΈ JToggleButton. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ„Π»Π°ΠΆΠΎΠΊ β€” это особая Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ.

Π’ классС JCheckBox ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ряд конструкторов. Один ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:JCheckBox(String str)

Он создаСт Ρ„Π»Π°ΠΆΠΎΠΊ с ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ надписью Π² Π²ΠΈΠ΄Π΅ символьной строки, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° str.

ΠŸΡ€ΠΈ установкС ΠΈΠ»ΠΈ сбросС Ρ„Π»Π°ΠΆΠΊΠ° формируСтся событиС ΠΎΡ‚ элСмСнта, прСдставлСнноС классом ItemEvent. Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий ΠΎΡ‚ элСмСнтов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ классы, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ интСрфСйс itemListener. Π’ этом интСрфСйсС объявлСн лишь ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄, itemStateChanged (), ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:void itemStateChanged(ItemEvent ie)

Π—Π΄Π΅ΡΡŒ событиС ΠΎΡ‚ элСмСнта пСрСдаСтся Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ie.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° элСмСнт, состояниС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ измСнилось, слСдуСт Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ get Item () для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ItemEvent. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° общая Ρ„ΠΎΡ€ΠΌΠ° объявлСния этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.Object getltem()

ВозвращаСмая этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ссылка Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΊ Ρ‚ΠΈΠΏΡƒ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π° Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” ΠΊ классу JCheckBox.

ВСкст, связанный с Ρ„Π»Π°ΠΆΠΊΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ getText (), Π° Π·Π°Π΄Π°Ρ‚ΡŒ тСкст ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ надписи, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ setText (). Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· рассмотрСнного Ρ€Π°Π½Π΅Π΅ класса JButton.