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

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

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

ИндСкс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· списка, Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ SINGLE SELECTION β€” это индСкс СдинствСнного Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ getSelectedlndex (). НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠ½ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ,int getSelectedlndex()

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ начинаСтся с нуля. Π’Π°ΠΊ, Ссли Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π² спискС, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0. Если ΠΆΠ΅ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· элСмСнтов Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½, возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -1.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ массив, содСрТащий всС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΈΠ· списка элСмСнты, ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ getSelectedlndices():int[] getSelectedlndices()

Π’ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌ массивС индСксы располоТСны ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ. Если ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ массив Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· элСмСнтов Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ· списка.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ простого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList, содСрТащСго список ΠΈΠΌΠ΅Π½. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ имя ΠΈΠ· списка, формируСтся событиС ListSelectionEvent, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ обрабатываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ valueChanged (), ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΌ Π² интСрфСйсС ListSelectionListener. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ опрСдСляСт индСкс Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ имя. Окно, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° экранС ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° рис. 15.5.// ДСмонстрация простого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList.// Для компиляции этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трСбуСтся JDK 7// ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ поздняя вСрсия Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°.import javax.swing.*;import javax.swing.event.*;import j ava.awt.*;import java.awt.event.*;class ListDemo implements ListSelectionListener { JList<String> jlst; JLabel jlab; JScrollPane jscrip; // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠΌΠ΅Π½ String names[] = { "Sherry", "Jon", "Rachel", // Π­Ρ‚ΠΎΡ‚ массив ΠΈΠΌΠ΅Π½ "Sasha", "Josselyn", "Randy", // Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ "Tom", "Mary", "Ken", // списком Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ JList. "Andrew", "Matt", "Todd" }; ListDemo() { // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JFrame JFrame jfrm = new JFrame("JList Demo"); // ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ диспСтчСр ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ FlowLayout jfrm.setLayout(new FlowLayout()); // Π·Π°Π΄Π°Ρ‚ΡŒ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π° jfrm.setSize(200, 160); // Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ послС закрытия ΠΎΠΊΠ½Π° jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList jlst = new JList<String>(names); // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ списка ΠΈΠΌΠ΅Π½. // Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнтов ΠΈΠ· списка // ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€Π° элСмСнтов ΠΈΠ· списка ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ. j1st.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ список Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. // ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ списка помСщаСтся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ. jscrlp = new JScrollPane(jlst); // Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ jscrlp.setPreferredSize(new Dimension(120, 90)); // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ для отобраТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ· списка, jlab = new JLabel("Please choose a name"); // Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий, связанных с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ· списка // ΠŸΡ€ΠΈΠ΅ΠΌ событий, Π½Π°ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ элСмСнтов ΠΈΠ· списка. jlst.addListSelectionListener(this); // Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ список ΠΈ ΠΌΠ΅Ρ‚ΠΊΡƒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ содСрТимого jfrm.add(jscrlp); jfrm.add(jlab); // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° jfrm.setVisible(true); } // ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ события, связанныС с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ элСмСнтов ΠΈΠ· списка public void valueChanged(ListSelectionEvent le) { // ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСкс Ρ‚ΠΎΠ³ΠΎ элСмСнта, Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» сдСлан // ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ Π² спискС int idx = j1st.getSelectedlndex(); // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π°, Ссли элСмСнт Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ if(idx != -1) jlab.setText("Current selection: " + names[idx]); else // ΠΈΠ½Π°Ρ‡Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ jlab.setText("Please choose a name"); } public static void main(String args[]) { // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ диспСтчСризации событий SwingUtilities.invokeLater(new Runnable() { public void run() { new ListDemoO; } }) ; }}

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

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

Рассмотрим исходный ΠΊΠΎΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ массив names. Он инициализируСтся ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ строками, содСрТащими Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°. Π’ конструкторС ListDemo () массив names ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° пСрСдаСтся массив, ΠΊΠ°ΠΊ это ΠΈΠΌΠ΅Π΅Ρ‚ мСсто Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, автоматичСски создаСт экзСмпляр класса JList, содСрТащий элСмСнты массива. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ список Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΈΠΌΠ΅Π½, хранящихся Π² массивС names.

Π”Π°Π»Π΅Π΅ устанавливаСтся Ρ€Π΅ΠΆΠΈΠΌ, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта ΠΈΠ· списка. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ jlst помСщаСтся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JScrollPane, Π° для ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ 120 * 90. Π­Ρ‚ΠΎ дСлаСтся Ρ€Π°Π΄ΠΈ компактности ΠΈ удобства использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Для задания ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° слуТит ΠΌΠ΅Ρ‚ΠΎΠ΄ setPreferredSize (). Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ фактичСскиС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½ΠΎ Π½Π΅ слСдуСт Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ диспСтчСры ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ запросы Π½Π° установку Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт ΠΈΠ· списка ΠΈΠ»ΠΈ измСняСт свой Π²Ρ‹Π±ΠΎΡ€, формируСтся связанноС с этим событиС. Для получСния индСкса Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… событий, Π° Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π² Π΅Π³ΠΎ Ρ€ΠΎΠ»ΠΈ выступаСт ΠΌΠ΅Ρ‚ΠΎΠ΄ valueChanged (), вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ getSelectedlndex (). И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для списка Π±Ρ‹Π» Π·Π°Π΄Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΈΠΌ элСмСнтом, Ρ‚ΠΎ индСкс ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ опрСдСляСт этот элСмСнт. Π—Π°Ρ‚Π΅ΠΌ индСкс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обращСния ΠΊ массиву names ΠΈ получСния ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ провСряСтся, Ρ€Π°Π²Π΅Π½ Π»ΠΈ индСкс Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ -1. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возвращаСтся ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· элСмСнтов Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ· списка. НСчто ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли событиС Π±Ρ‹Π»ΠΎ сформировано Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Π»Π΅ΠΌ своСго Π²Ρ‹Π±ΠΎΡ€Π°. Напомним, Ρ‡Ρ‚ΠΎ событиС, связанноС с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΈΠ· списка, формируСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ элСмСнт списка ΠΈΠ»ΠΈ ΠΆΠ΅ отмСняСт свой Π²Ρ‹Π±ΠΎΡ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для опробования 15.1.Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ², создаваСмая Π½Π° основС Swing

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ознакомились лишь с нСбольшой Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Swing, это Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ свои знания Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ срСдствами этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для опробования 10.1 Π±Ρ‹Π»Π° создана консольная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ². А Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ прСдстоит ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, построСнным ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Swing. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ Π΄Π°Π½Π½ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π΅ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Π² ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠΈ. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ выглядит Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ², создаваСмой Π½Π° основС Swing.

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

Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π²Ρ‹ смоТСтС сами ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, насколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Swing ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» SwingFC.java ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ import. /* ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для опробования 15-1. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ², создаваСмая Π½Π° основС Swing. Для компиляции этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ трСбуСтся JDK 7 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ поздняя вСрсия Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°. */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*;

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс SwingFC, Π½Π°Ρ‡Π°Π² с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅ исходного ΠΊΠΎΠ΄Π°.class SwingFC implements ActionListener {JTextField jtfFirst; // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ для хранСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°JTextField jtfSecond; // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ для хранСния ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°JButton jbtnComp; // Кнопка для сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ²JLabel jlabFirst, jlabSecond; // Подсказки для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡJLabel jlabResult; // БвСдСния ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… ΠΈ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

ИмСна сравниваСмых Ρ„Π°ΠΉΠ»ΠΎΠ² ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² полях Π²Π²ΠΎΠ΄Π° тСкста jtfFirst ΠΈ jtfSecond. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ сравнСниС Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² этих полях, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ jbtnComp. По Ρ…ΠΎΠ΄Ρƒ сравнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠΊ j labFirst-ΠΈ j labSecond Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ наводящиС сообщСния. А Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сравнСния ΠΈΠ»ΠΈ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ jlabResult.

120
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ описанию ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ страница Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ страница
{"b":"242519","o":1}