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

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

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

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ², ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для опробования 15.1,Ρ„Π»Π°ΠΆΠΎΠΊ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΡΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ надписью: Show position of mismatch (ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ мСсто нСсовпадСния). Если этот Ρ„Π»Π°ΠΆΠΎΠΊ установлСн, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ мСсто, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ расхоТдСниС Π² содСрТимом сравниваСмых Ρ„Π°ΠΉΠ»ΠΎΠ²./ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для опробования 15-1.Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ², создаваСмая Π½Π° основС Swing.Π’ этой вСрсии присутствуСт Ρ„Π»Π°ΠΆΠΎΠΊ для установки Ρ€Π΅ΠΆΠΈΠΌΠ° показамСста ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ нСсовпадСния содСрТимого сравниваСмых Ρ„Π°ΠΉΠ»ΠΎΠ².Для компиляции этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ трСбуСтся JDK 7ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ поздняя вСрсия Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°./import java.awt.;import java.awt.event.;import javax.swing.;import java.io.;class SwingFC implements ActionListener {JTextField jtfFirst; // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ для хранСния ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°JTextField jtfSecond; // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ для хранСния ΠΈΠΌΠ΅Π½ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°JButton jbtnComp; // Кнопка для сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ²JLabel jlabFirst, jlabSecond; // Подсказки для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡJLabel jlabResult; // БвСдСния ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ… ΠΈ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…JCheckBox jcbLoc; // Ρ„Π»Π°ΠΆΠΎΠΊ для ΠΏΠΎΠΊΠ°Π·Π° мСста ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ нСсовпадСнияфайловSwingFC () {// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JFrameJFrame jfrm = new JFrame("Compare Files");// ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ диспСтчСр ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ FlowLayoutj frm.setLayout(new FlowLayout());// Π·Π°Π΄Π°Ρ‚ΡŒ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π°jfrm.setSize(200, 190);// Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ послС закрытия ΠΎΠΊΠ½Π°j frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ поля для Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²jtfFirst = new JTextField(14);jtfSecond = new JTextField(14);// ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСйствия для ΠΏΠΎΠ»Π΅ΠΉ Π²Π²ΠΎΠ΄Π° тСкстаjtfFirst.setActionCommand("fileA");jtfSecond.setActionCommand("fileB");// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ CompareJButton jbtnComp = new JButton("Compare");// Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ событий дСйствия ΠΎΡ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ ComparejbtnComp.addActionListener(this) ;// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈjlabFirst = new JLabel("First file: ");jlabSecond = new JLabel("Second file: ");jlabResult = new JLabel("");// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π»Π°ΠΆΠΎΠΊjcbLoc = new JCheckBox("Show position of mismatch");// Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ содСрТимогоjfrm.add(jlabFirst);jfrm.add(jtfFirst) ;jfrm.add(jlabSecond) ;jfrm.add(jtfSecond);

j f rm.add(j cbLoc);ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А. ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° вопросы для самопровСрки 599.jfrm.add(jbtnComp);jfrm.add(jlabResult);// ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π°j frm.setVisible(true);}// ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ послС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Comparepublic void actionPerformed(ActionEvent ae) {int i=0, j=0;// сначала ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΠΎΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²if(jtfFirst.getText().equals("")) {jlabResult.setText("First file name missing.");return;.}if(jtfSecond.getText().equals("")) {jlabResult.setText("Second file name missing.");return;// ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try с рСсурсамиtry (FilelnputStream fl = new FilelnputStream(jtfFirst.getText());FilelnputStream f2 = new FilelnputStream(jtfSecond.getText()))// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ содСрТимоС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°do {i = f1.read();j = f2.read();if(i != j) break;} whiled != -1 && j != -1) ;if(i != j) (if(jcbLoc.isSelected())jlabResult.setText("Files differ at location " + count);elsejlabResult.setText("Files are not the same.");}elsejlabResult.setText("Files compare equal.");} catch(IOException exc) {jlabResult.setText("File Error");}}public static void main(String args[]) {// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ диспСтчСризации событийSwingUtilities.invokeLater(new Runnable() {public void run() {new SwingFC();}});}}

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ List Demo Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° допускала Π²Ρ‹Π±ΠΎΡ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов ΠΈΠ· списка.// ДСмонстрация Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов ΠΈΠ· списка// с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Jlist.// Для компиляции этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трСбуСтся JDK 7// ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ поздняя вСрсия Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°.import javax.swing.;import javax.swing.event;import java.awt.;import java.awt.event.*;class ListDemo implements ListSelectionListener {JList jlst;JLabel jlab;JScrollPane jscrlp;// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив ΠΈΠΌΠ΅Π½String names[] = { "Sherry", "Jon", "Rachel","Sasha", "Josselyn", "Randy","Tom", "Mary", "Ken","Andrew", "Matt", "Todd" };ListDemo() {// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ JFrameJFrame jfrm = new JFrame("JList Demo");// ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ диспСтчСр ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ FlowLayoutj frm.setLayout(new FlowLayout());// Π·Π°Π΄Π°Ρ‚ΡŒ исходныС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ€Π°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π°jfrm.setSize(200, 160);// Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ послС закрытия ΠΎΠΊΠ½Π°j frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ JListjlst = new JList(names);// Π£Π΄Π°Π»ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€Π°// Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… элСмСнтов ΠΈΠ· списка, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот Ρ€Π΅ΠΆΠΈΠΌ// устанавливаСтся для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° JList ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.// jlst.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(jscrip);jfrm.add(jlab);// ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π°j frm.setVisible(true);}// ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ события, связанныС с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ элСмСнтов ΠΈΠ· спискаpublic void valueChanged(ListSelectionEvent le) {// ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ индСксы Ρ‚Π΅Ρ… элСмСнтов, Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π» сдСлан// ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ Π² спискСint indices[] = j1st.getSelectedlndices();// ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π°, Ссли Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΎΠ΄ΠΈΠ½// ΠΈΠ»ΠΈ нСсколько элСмСнтов ΠΈΠ· спискаif(indices.length != 0) {String who = "";// ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ строку ΠΈΠ· Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½for(int i : indices)who += names[i] + " ";jlab.setText("Current selections: " + who);}else // ΠΈΠ½Π°Ρ‡Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€jlab.setText("Please choose a name");public static void main(String args[]) {// ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π°ΠΌΠΊΡƒ ΠΎΠΊΠ½Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ диспСтчСризации событийSwingUtilities.invokeLater(new Runnable() {public void run() {new ListDemo();}}) ;}}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Java

Как пояснялось Π² Π³Π»Π°Π²Π΅ 1, Π² Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ символами //ΠΈ/ /,Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈΡ… Π²ΠΈΠ΄ называСтся Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ коммСнтариями. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ символами /* ΠΈ ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ символами /. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ свСдСния ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² исходный ΠΊΠΎΠ΄ самой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для извлСчСния этих свСдСний ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΡ… прСобразования Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° слуТит ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° j avadoc, входящая Π² состав JDK. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ β€” ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ докумСнтирования ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π°ΠΌ, вСроятно, ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»Π°ΡΡŒ докумСнтация, сформированная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ j avadoc, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ способ примСняСтся для составлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Java API.ДСскрипторы javadoc

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° javadoc распознаСт ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… коммСнтариях ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСскрипторы

Π”Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€ΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅@authorΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹{0code}ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌ для Π²Ρ‹Π²ΠΎΠ΄Π° исходного ΠΊΠΎΠ΄Π°,Π½Π΅ выполняя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°@deprecatedΠ£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ элСмСнт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ{0docRoot}Π£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈGexceptionΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ{@inheritDoc}НаслСдуСт ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΎΡ‚ блиТайшСго супСркласса{@link}ВставляСт ссылку Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ{@linkplain}ВставляСт ссылку Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, Π½ΠΎ ссылка отобраТаСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠΈ простой тСкст{@literal}ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½Π΅ выполняя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°@paramΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°@returnΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ@seeΠ£ΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ссылку Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ0serialΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΠ»Π΅, упорядочиваСмоС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽQserialDataΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, записываСмыС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ writeObject () ΠΈΠ»ΠΈwriteExternal ()@serialFieldΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ObjectStreamField0sinceΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΈ внСсСны ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ измСнСния@throwsΠ’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ дСскриптор @exception{@value}ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константы, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅Ρ‚ΠΈΠΏΠ° static(AversionΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ классаДСскрипторы, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с символа @, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ‚Ρ€ΠΎΠΊΡƒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². А дСскрипторы, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π² Java 6Q5встраиваСмыми ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… дСскрипторах. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС HTML-дСскрипторы. Но Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ HTML-дСскрипторы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСскрипторы Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ слСдуСт, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄ HTML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, составляСмого ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉjavadoc.Π§Ρ‚ΠΎ касаСтся докумСнтирования исходного ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для описания классов, интСрфСйсов, ΠΏΠΎΠ»Π΅ΠΉ, конструкторов ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Но Π² любом случаС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСпосрСдствСнно описываСмому элСмСнту исходного ΠΊΠΎΠ΄Π°. Одни дСскрипторы, Π² Ρ‚ΠΎΠΌ числС@see, @since ΠΈ @deprecated, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для докумСнтирования Π»ΡŽΠ±Ρ‹Ρ…ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² исходного ΠΊΠΎΠ΄Π°, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для докумСнтирования ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСскриптор Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² рассматриваСтся Π΄Π°Π»Π΅Π΅ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.На Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒΠ”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для составлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ³ΠΎ ΠΎΠ±Π·ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½ΠΎ дСлаСтся это ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ j avadoc.ДСскриптор @author