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

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

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

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ состояниС Ρ„Π»Π°ΠΆΠΊΠ° β€” Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ isSelected (), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:boolean isSelected()

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Ρ„Π»Π°ΠΆΠΎΠΊ установлСн, ΠΈΠ½Π°Ρ‡Π΅ β€” логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠ°ΠΌΠΈ. Π’ Π½Π΅ΠΉ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ Ρ„Π»Π°ΠΆΠΊΠ°: Alpha, Beta ΠΈ Gamma. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° состояниС Ρ„Π»Π°ΠΆΠΊΠ° измСняСтся, Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ свСдСния ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌ дСйствии, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ Ρ„Π»Π°ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ установлСны Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Окно, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° экранС ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π½Π° рис. 15.4.// ДСмонстрация Ρ„Π»Π°ΠΆΠΊΠΎΠ².import java.awt.*;import java.awt.event.*;import javax.swing.*;class CBDemo implements ItemListener { JLabel jlabSelected; JLabel jlabChanged; JCheckBox jcbAlpha; JCheckBox jcbBeta; JCheckBox jcbGamma; CBDemo() { // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JFrame JFrame jfrm = new JFrame("Demonstrate Check Boxes"); // ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ диспСтчСр ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ FlowLayout jfrm.setLayout(new FlowLayout()); // Π·Π°Π΄Π°Ρ‚ΡŒ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π° jfrm.setSize(280, 120); // Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ послС закрытия ΠΎΠΊΠ½Π° jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустыС ΠΌΠ΅Ρ‚ΠΊΠΈ jlabSelected = new JLabel(""); jlabChanged = new JLabel(""); // Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π»Π°ΠΆΠΊΠΎΠ². jcbAlpha = new JCheckBox("Alpha"); jcbBeta = new JCheckBox("Beta"); jcbGamma = new JCheckBox("Gamma"); // Бобытия, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ JCheckBox, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ // ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ itemStateChanged(), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² классС CBDemo. jcbAlpha.addltemListener(this); jcbBeta.addltemListener(this) ; jcbGamma.addltemListener(this); // Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π»Π°ΠΆΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ содСрТимого jfrm.add(jcbAlpha); jfrm.add(jcbBeta); jfrm.add(jcbGamma); jfrm.add(jlabChanged); jfrm.add(jlabSelected); // ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° jfrm.setVisible(true); } // ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий ΠΎΡ‚ элСмСнтов (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” Ρ„Π»Π°ΠΆΠΊΠΎΠ²). public void itemStateChanged(ItemEvent ie) { String str = ""; // ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ссылки Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ„Π»Π°ΠΆΠΊΠ°, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ событиС. JCheckBox cb = (JCheckBox) ie.getltem(); // ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ состояния Ρ„Π»Π°ΠΆΠΊΠ° if(cb.isSelected()) // ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ состояния Ρ„Π»Π°ΠΆΠΊΠ°. jlabChanged.setText(cb.getText() + " was just selected."); else jlabChanged.setText(cb.getText() + " was just cleared."); // ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎ всСх установлСнных Ρ„Π»Π°ΠΆΠΊΠ°Ρ… if(jcbAlpha.isSelected()) { str += "Alpha "; } if(jcbBeta.isSelected()) { str += "Beta "; } if (jcbGamma.isSelected() ) { str += "Gamma"; } jlabSelected.setText("Selected check boxes: " + str); } public static void main(String args[]) { // ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ диспСтчСризации событий SwingUtilities.invokeLater(new Runnable() { public void run() { new CBDemo(); } }); }}

Java: руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… (Π›ΠŸ) - _11.jpg
Рис. 15.4. Окно, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ CBDemo

Наибольший интСрСс Π² рассматриваСмом здСсь ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ прСдставляСт ΠΌΠ΅Ρ‚ΠΎΠ΄ itemStateChanged (), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий ΠΎΡ‚ элСмСнтов (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС β€” Ρ„Π»Π°ΠΆΠΊΠΎΠ²). Он выполняСт Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, сообщаСт, установлСн ΠΈΠ»ΠΈ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ Ρ„Π»Π°ΠΆΠΎΠΊ; Π° Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ установлСнных Ρ„Π»Π°ΠΆΠΊΠΎΠ². Π’ Π½Π°Ρ‡Π°Π»Π΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° опрСдСляСтся ссылка Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ событиС ItemEvent. Π­Ρ‚ΠΎ происходит Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС ΠΊΠΎΠ΄Π°:JCheckBox cb = (JCheckBox) ie.getltem();

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ JCheckBox Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ getltem () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Object. Π”Π°Π»Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ itemStateChanged () обращаСтся ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ isSelected () ΠΏΠΎ ссылкС cb, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Ρ„Π»Π°ΠΆΠΊΠ°. Если ΠΌΠ΅Ρ‚ΠΎΠ΄ isSelected () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ„Π»Π°ΠΆΠΎΠΊ установлСн, Π° логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false соотвСтствуСт ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Ρ„Π»Π°ΠΆΠΊΠ°. Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ j labChanged ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ свСдСния ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΌ дСйствии.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΌΠ΅Ρ‚ΠΎΠ΄ itemStateChanged () провСряСт состояниС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π»Π°ΠΆΠΊΠ°ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ строку с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ установлСнных Ρ„Π»Π°ΠΆΠΊΠΎΠ². Π­Ρ‚Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Π°ΡΡΡ‚Ρ€ΠΎΠΊΠ° отобраТаСтся Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΊΠΈ j labSelected.Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Jlist

ПослСдним Π² этой Π³Π»Π°Π²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСн ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList. Он являСтся основным классом Swing для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со списками ΠΈ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько элСмСнтов ΠΈΠ· списка. И хотя элСмСнты списка ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ строками, это Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ список, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ практичСски Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° экранС. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Java, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π² Π½ΠΈΡ… ΠΏΡ€Π΅ΠΆΠ΄Π΅.

РаньшС элСмСнты списка Π±Ρ‹Π»ΠΈ прСдставлСны Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ JList Π² Π²ΠΈΠ΄Π΅ ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Object. А послС выпуска вСрсии JDK 7 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList стал ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:class JList<E>

Π³Π΄Π΅ Π• ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ элСмСнтов списка. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ JList Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ обСспСчиваСтся типовая Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ.

На Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒΠ”Π°Π»Π΅Π΅ рассматриваСтся ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList ΠΈ дСмонстрируСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Π³ΠΎ примСнСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ компилятором Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½Π΅ΠΉ вСрсии, Ρ‡Π΅ΠΌ JDK 7, Π²Π°ΠΌ придСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList.

Π’ классС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList прСдоставляСтся ряд конструкторов. Один ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:JList (Π•[] элСмСнты)

Π­Ρ‚ΠΎΡ‚ конструктор создаСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList со списком элСмСнтов, хранящихся Π² массивС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ элСмСнты.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList ΠΈ сам позволяСт Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ Π·Π°Π΄Π°Ρ‡ построСния списков, Π½ΠΎ Ρ‡Π°Ρ‰Π΅ всСго ΠΎΠ½ помСщаСтся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JScrollPane, автоматичСски ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ своСго содСрТимого. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ конструктор этого ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.JScrollPane(Component ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚)

Π—Π΄Π΅ΡΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ конструктору Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList). Если ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JScrollPane, Ρ‚ΠΎ Ρ‚Π΅ΠΌ самым Π±ΡƒΠ΄Π΅Ρ‚ обСспСчСна автоматичСская ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… списков. Благодаря этому упрощаСтся построСниС графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ числа элСмСнтов списка Π² частности, Π½Π΅ затрагивая ΠΏΡ€ΠΈ этом Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ самого ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ»ΠΈ измСняСт Π²Ρ‹Π±ΠΎΡ€ элСмСнта Π² спискС, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ событиС ListSelectionEvent. Π­Ρ‚ΠΎ ΠΆΠ΅ событиС формируСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅ Π²Ρ‹Π±ΠΎΡ€Π°. Для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ° событий ΠΈΠ· класса, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ интСрфСйс ListSelectionListener. Π­Ρ‚ΠΎΡ‚ интСрфСйс относится ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ javax. swing. event. Π’ этом интСрфСйсС объявлСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄, valueChanged (), ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:void valueChanged(ListSelectionEvent le)

Π³Π΄Π΅ Ie ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ событиС. И хотя Π² самом классС ListSelectionEvent ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ряд ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², для выяснСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ со списком, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ приходится ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° JList. Класс ListSelectionEvent Ρ‚Π°ΠΊΠΆΠ΅ относится ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ j avax. swing. event.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JList Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ нСсколько элСмСнтов ΠΈΠ· списка. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ setSelectionMode (), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² классС JList. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ:void setSelectionMode(int Ρ€Π΅ΠΆΠΈΠΌ)

Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ€Π΅ΠΆΠΈΠΌ Π·Π°Π΄Π°Π΅Ρ‚ порядок Π²Ρ‹Π±ΠΎΡ€Π° элСмСнтов ΠΈΠ· списка. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ констант, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² интСрфСйсС ListSelectionModel, входящСм Π² ΠΏΠ°ΠΊΠ΅Ρ‚ javax. swing.SINGLE_SELECTIONSINGLE_INTERVAL_SELECTIONMULTIPLE_INTERVAL_SELECTION

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ устанавливаСтся Ρ€Π΅ΠΆΠΈΠΌ MULTIPLE_INTERVAL_SELECTION, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ряд элСмСнтов ΠΈΠ· списка Ρ‡Π΅Ρ€Π΅Π· нСсколько ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ². Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ SINGLE_INTERVAL_SELECTI0N ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ряд элСмСнтов ΠΈΠ· списка Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ. А Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ SINGLE SELECTION ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ элСмСнт ΠΈΠ· списка. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ СдинствСнный элСмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ· списка ΠΈ Π² Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…, Π³Π΄Π΅ допускаСтся Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ†Π΅Π»Ρ‹ΠΉ ряд элСмСнтов.