ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния Π½Π° Java

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

New Label (dialog, SWT. NONE); // пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΡΡ‚ΡŒ. Π£ Π²ΡΡ‚авляСмой записи врСмя большС, Ρ‡Π΅ΠΌ Ρƒ Π²ΡΠ΅Ρ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ…. Π—Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ». Ok. setText («Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ «); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. Erase. setText («Π£Π΄Π°Π»ΠΈΡ‚ΡŒ»); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. ВрСмя ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ записи Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ. Note. setText (lst.getItem… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния Π½Π° Java (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • Π—Π°Π΄Π°Π½ΠΈΠ΅
  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ
  • 2. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма
    • 2. 1. Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ срСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
    • 2. 2. ОбоснованиС Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы
    • 2. 3. ВрСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ
  • 3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • прилоТСния
    • 3. 1. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
    • 3. 2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° графичСского интСрфСйса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • 3. 3. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • 3. 4. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
  • 4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
  • прилоТСния
  • 5. ОписаниС примСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹
    • 5. 1. Π˜Π½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ½Ρ‹Π΅ трСбования
    • 5. 2. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… источников
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1

setLayout (new GridLayout (2, false));

// элСмСнт Π²Π²ΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

final DateTime time = new DateTime (dialog, SWT. TIME-SWT.SHORT);

final Text note = new Text (dialog, SWT. LEFT);// элСмСнт Π²Π²ΠΎΠ΄Π° строки записи

GridData grD = new GridData (); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

grD.horizontalAlignment = GridData. FILL;// Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ

// Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ всС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ΅ появится

grD.grabExcessHorizontalSpace = true;

grD.widthHint=350; // исходный Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ 350 пиксСлов

note.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

new Label (dialog, SWT. NONE); // пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΡΡ‚ΡŒ

// ячСйку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ раскладки

Button ok = new Button (dialog, SWT. PUSH); // ΠΊΠ½ΠΎΠΏΠΊΠ° подтвСрТдСния

ok.setText («Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ «); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// ΠΊΠ½ΠΎΠΏΠΊΠ° справа, надпись ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

ok.setLayoutData (new GridData (SWT.RIGHT, SWT. CENTER, false, false));

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ подтвСрТдСния

ok.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

String nr=String.format («%02d:%02d !!! «,

time.getHours (), time. getMinutes ())+note.getText (); // добавляСмая надпись

int i;

for (i=0; i < lst. getItemCount (); i++){// ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡƒ

// врСмя добавляСмой записи Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ

if (nr.substring (0,5).compareTo (lst.getItem (i).substring (0,5)) < 0){

lst.add (nr, i); // вставляСм запись Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ

break;

}

}

if (i == lst. getItemCount ()) // Ρƒ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΠΎΠΉ записи врСмя большС,

// Ρ‡Π΅ΠΌ Ρƒ Π²ΡΠ΅Ρ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ…

lst.add (nr, lst. getItemCount ()); // добавляСм запись Π² ΠΊΠΎΠ½Π΅Ρ† списка

dialog.close (); // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³

}

});

dialog.setDefaultButton (ok); // устанавливаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

dialog.pack ();

dialog.open (); // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³

}

});

edit = new Button (sh, SWT. PUSH-SWT.CENTER); // ΠΊΠ½ΠΎΠΏΠΊΠ° «Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ»

grD = new GridData (); // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… раскладки для ΠΊΠ½ΠΎΠΏΠΊΠΈ

grD.horizontalAlignment = GridData. FILL; // Π½Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбца

edit.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

edit.setText («Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ»); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ»

edit.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

final int num=lst.getSelectionIndex (); // фиксируСм Π½ΠΎΠΌΠ΅Ρ€ записи, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π² ΡΠΏΠΈΡΠΊΠ΅

if (num ≠ -1){ // запись Π²Ρ‹Π±Ρ€Π°Π½Π°

// ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π°

final Shell dialog = new Shell (sh, SWT. DIALOG_TRIM-SWT.APPLICATION_MODAL);

dialog.setLayout (new GridLayout (2, false)); // ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ раскладки Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ

// Π½Π° Π΄Π²Π° столбца

// элСмСнт Π²Π²ΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

final DateTime time = new DateTime (dialog, SWT. TIME — SWT. SHORT);

final Text note = new Text (dialog, SWT. LEFT);// элСмСнт Π²Π²ΠΎΠ΄Π° строки записи

GridData grD = new GridData (); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

grD.horizontalAlignment = GridData. FILL;// Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ

grD.grabExcessHorizontalSpace = true; // Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ всС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто ΠΏΠΎ

// Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ΅ появится

grD.widthHint=350; // ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ 350

// пиксСлов

note.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

new Label (dialog, SWT. NONE); // пустой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π½ΡΡ‚ΡŒ

// ячСйку Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ раскладки

final String cur; // выбранная строка списка

cur=lst.getItem (num); // Ρ‡ΠΈΡ‚Π°Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт списка

note.setText (cur.substring (10)); // ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ строки Π²

// элСмСнт Π²Π²ΠΎΠ΄Π° тСкста

time.setHours (Integer.parseInt (cur.substring (0,2))); // устанавливаСм часы

// ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΈ

time.setMinutes (Integer.parseInt (cur.substring (3,5))); // устанавливаСм ΠΌΠΈΠ½ΡƒΡ‚Ρ‹

// ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΈ

Button ok = new Button (dialog, SWT. PUSH); // ΠΊΠ½ΠΎΠΏΠΊΠ° подтвСрТдСния

ok.setText («Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ «); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// ΠΊΠ½ΠΎΠΏΠΊΠ° справа, надпись ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

ok.setLayoutData (new GridData (SWT.RIGHT, SWT. CENTER, false, false));

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ подтвСрТдСния

ok.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

// отрСдактированная запись

String nr=String.format («%02d:%02d !!! «,

time.getHours (), time. getMinutes ())+note.getText ();

int i;

lst.remove (num); // удаляСм ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ запись

for (i=0; i < lst. getItemCount (); i++){ // ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡƒ

// врСмя ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ записи Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ

if (nr.substring (0,5).compareTo (lst.getItem (i).substring (0,5)) < 0){

lst.add (nr, i); // вставляСм запись Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ

break;

}

}

// Ρƒ Π²ΡΡ‚авляСмой записи врСмя большС, Ρ‡Π΅ΠΌ Ρƒ Π²ΡΠ΅Ρ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ…

if (i == lst. getItemCount ())

lst.add (nr, lst. getItemCount ()); // добавляСм запись Π² ΠΊΠΎΠ½Π΅Ρ† списка

dialog.close ();

} // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³

});

dialog.setDefaultButton (ok); // устанавливаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

dialog.pack ();

dialog.open (); // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³

}

}

});

erase = new Button (sh, SWT. PUSH-SWT.CENTER); // ΠΊΠ½ΠΎΠΏΠΊΠ° «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ»

grD = new GridData (); // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… раскладки для ΠΊΠ½ΠΎΠΏΠΊΠΈ

grD.horizontalAlignment = GridData. FILL; // Π½Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбца

erase.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

erase.setText («Π£Π΄Π°Π»ΠΈΡ‚ΡŒ»); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ»

erase.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

int num=lst.getSelectionIndex (); // опрСдСляСм Π½ΠΎΠΌΠ΅Ρ€ записи, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π² ΡΠΏΠΈΡΠΊΠ΅

if (num ≠ -1) // запись Π²Ρ‹Π±Ρ€Π°Π½Π°

lst.remove (num); // удаляСм Π΅Π΅

}

});

done = new Button (sh, SWT. PUSH-SWT.CENTER); // ΠΊΠ½ΠΎΠΏΠΊΠ° «Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ»

grD = new GridData (); // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… раскладки для ΠΊΠ½ΠΎΠΏΠΊΠΈ

grD.horizontalAlignment = GridData. FILL; // Π½Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбца

done.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

done.setText («Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ»); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ»

done.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

int num=lst.getSelectionIndex (); // опрСдСляСм Π½ΠΎΠΌΠ΅Ρ€ записи, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π² ΡΠΏΠΈΡΠΊΠ΅

if (num ≠ -1){ // запись Π²Ρ‹Π±Ρ€Π°Π½Π°

String cur=lst.getItem (num); // считываСм Π΅Π΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°

if (cur.substring (6,9).compareTo («…») == 0) // это выполнСнная запись

cur=cur.replaceFirst («\.\.\.» ," !!!"); // Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ

else

cur=cur.replaceFirst («!!!» ," …"); // Π΄Π΅Π»Π°Π΅ΠΌ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ

lst.setItem (num, cur); // замСняСм запись Π² ΡΠΏΠΈΡΠΊΠ΅

}

}

});

move = new Button (sh, SWT. PUSH-SWT.CENTER); // ΠΊΠ½ΠΎΠΏΠΊΠ° «ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΡ‚ΠΈ»

grD = new GridData (); // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… раскладки для ΠΊΠ½ΠΎΠΏΠΊΠΈ

grD.horizontalAlignment = GridData. FILL; // Π½Π° ΡˆΠΈΡ€ΠΈΠ½Ρƒ столбца

move.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

move.setText («ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΡ‚ΠΈ»); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ»

move.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

// опрСдСляСм Π½ΠΎΠΌΠ΅Ρ€ записи, Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π² ΡΠΏΠΈΡΠΊΠ΅

final int num=lst.getSelectionIndex ();

if (num ≠ -1){ // запись Π²Ρ‹Π±Ρ€Π°Π½Π°

// ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π°

final Shell dialog = new Shell (sh, SWT. DIALOG_TRIM-SWT.APPLICATION_MODAL);

dialog.setLayout (new GridLayout (2, false)); // ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ раскладки Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹ΠΉ

// Π½Π° Π΄Π²Π° столбца

// элСмСнт Π²Π²ΠΎΠ΄Π° строки записи (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния)

final Text note = new Text (dialog, SWT. LEFT-SWT.READ_ONLY);

GridData grD = new GridData (); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

grD.horizontalSpan = 2; // Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌ Π΄Π²Π΅ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ

grD.horizontalAlignment = GridData. FILL;// Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ

grD.grabExcessHorizontalSpace = true; // Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ всС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ мСсто

// ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ, Ссли Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ΅ появится

grD.widthHint=350; // ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ 350 пиксСлов

note.setLayoutData (grD); // устанавливаСм Π΄Π°Π½Π½Ρ‹Π΅ раскладки

// Π΄Π΅Π»Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ калСндаря для Π²Π²ΠΎΠ΄Π°

final DateTime date = new DateTime (dialog, SWT. CALENDAR-SWT.BORDER);

// синхронизируСм Π΅Π³ΠΎ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π΄Π°Ρ‚ΠΎΠΉ

date.setDay (currDate.get (Calendar.DAY_OF_MONTH));

date.setMonth (currDate.get (Calendar.MONTH)-1);

date.setYear (currDate.get (Calendar.YEAR));

date.setFocus (); // ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ фокус

note.setText (lst.getItem (num).substring (10)); // ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ Π²Π²ΠΎΠ΄Π°

// Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ строки

Button ok = new Button (dialog, SWT. PUSH); // ΠΊΠ½ΠΎΠΏΠΊΠ° подтвСрТдСния

ok.setText («ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΡ‚ΠΈ «); // устанавливаСм надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅

// ΠΊΠ½ΠΎΠΏΠΊΠ° справа, надпись ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

ok.setLayoutData (new GridData (SWT.RIGHT, SWT. DOWN, false, false));

// Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ подтвСрТдСния

ok.addSelectionListener (new SelectionAdapter (){

public void widgetSelected (SelectionEvent e){

lst.remove (num); // удаляСм Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ запись списка

WriteFile (currDate); // записываСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π² Ρ„Π°ΠΉΠ»

// синхронизируСм ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ

currDate.set (date.getYear (), date. getMonth () + 1, date. getDay ());

// синхронизируСм Π³Π»Π°Π²Π½Ρ‹ΠΉ элСмСнт управлСния

calendar.setDate (date.getYear (), date. getMonth (), date. getDay ());

lst.removeAll (); // удаляСм всС записи списка

ReadFile (date); // считываСм записи Π½ΠΎΠ²ΠΎΠΉ Π΄Π°Ρ‚Ρ‹

lst.add («00:00 !!! «+note.getText (), 0); // добавляСм запись с ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Π½ΠΎΠΉ

// записью, Π½ΠΎ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ

dialog.close (); // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³

}

});

dialog.setDefaultButton (ok); // устанавливаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

dialog.pack ();

dialog.open (); // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³

}

}

});

sh.pack ();

sh.open (); // ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

sh.addListener (SWT.Close, new Listener (){ // Π·Π°Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ для закрытия Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°

public void handleEvent (Event event){

WriteFile (currDate); // записываСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ содСрТимоС списка Π² Ρ„Π°ΠΉΠ»

}

});

while (!sh.isDisposed ()){ // Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий

if (!disp.readAndDispatch ()) // ΠΎΠΊΠ½ΠΎ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ

disp.sleep (); // ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΆΠ΄Π°Ρ‚ΡŒ

}

sh.dispose (); // освобоТдаСм рСсурсы

Display.getCurrent ().dispose (); // освобоТдаСм рСсурсы

}

public static void ReadFile (Calendar dt){ // Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — калСндарная Π΄Π°Ρ‚Π°)

String fname=String.format («%04d%02d%02d.dat», currDate. get (Calendar.YEAR),

currDate.get (Calendar.MONTH),

currDate.get (Calendar.DAY_OF_MONTH));

ReadFile (fname);

}

// Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — элСмСнт управлСния калСндаря)

public static void ReadFile (DateTime dt){

String fname=String.format («%04d%02d%02d.dat» ,

calendar.getYear (), calendar. getMonth () + 1, calendar. getDay ());

ReadFile (fname);

}

public static void ReadFile (String fname){ // Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — имя Ρ„Π°ΠΉΠ»Π°)

try{

BufferedReader fi = new BufferedReader (// создаСм Ρ€ΠΈΠ΄Π΅Ρ€ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

new InputStreamReader (

new FileInputStream (fname)));

String cur;

while ((cur=fi.readLine ()) ≠ null) // Ρ‡ΠΈΡ‚Π°Π΅ΠΌ записи, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡ‚ΠΈΠ³Π½ΡƒΡ‚ ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°

lst.add (cur, lst. getItemCount ()); // добавляСм запись Π² ΡΠΏΠΈΡΠΎΠΊ

fi.close (); // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ€ΠΈΠ΄Π΅Ρ€

}catch (FileNotFoundException ex){ // Ρ„Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ — просто пропускаСм

}catch (IOException ex){ // ошибка чтСния — Π²Ρ‹Π΄Π°Π΅ΠΌ сообщСниС

MessageBox mb = new MessageBox (sh, SWT. ICON_ERROR-SWT.OK);

mb.setMessage («ΠžΡˆΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°»);

mb.open ();

}

}

public static void WriteFile (Calendar dt){ // запись Ρ„Π°ΠΉΠ»Π° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — калСндарная Π΄Π°Ρ‚Π°)

String fname=String.format («%04d%02d%02d.dat», currDate. get (Calendar.YEAR),

currDate.get (Calendar.MONTH),

currDate.get (Calendar.DAY_OF_MONTH));

WriteFile (fname);

}

// запись Ρ„Π°ΠΉΠ»Π° (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ — элСмСнт управлСния калСндаря)

public static void WriteFile (DateTime dt){

String fname=String.format («%04d%02d%02d.dat» ,

calendar.getYear (), calendar. getMonth () + 1, calendar. getDay ());

WriteFile (fname);

}

public static void WriteFile (String fname){

try {

BufferedWriter fo = new BufferedWriter (// создаСм Ρ€Π°ΠΉΡ‚Π΅Ρ€ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°

new OutputStreamWriter (

new FileOutputStream (fname)));

for (int i=0; i < lst. getItemCount (); i++){ // Ρ‡ΠΈΡ‚Π°Π΅ΠΌ список Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°

fo.write (lst.getItem (i)); // записываСм Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт Π² Ρ„Π°ΠΉΠ»

fo.newLine (); // добавляСм ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки

}

fo.close (); // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»

} catch (IOException ex){ // ошибка записи — Π²Ρ‹Π΄Π°Π΅ΠΌ сообщСниС

MessageBox mb = new MessageBox (sh, SWT. ICON_ERROR-SWT.OK);

mb.setMessage («ΠžΡˆΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°»);

mb.open ();

}

}

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. Standard Widget Toolkit http://ru.wikipedia.org/wiki/SWT
  2. Π§Π΅Π±ΠΎΡ‚Π°Ρ€Π΅Π² А. Java 2: Π²Ρ‚ΠΎΡ€ΠΎΠΉ шанс вавилонской башни. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π”ΠΎΠΌ «ΠšΠΎΠΌΠΈΠ·Π΄Π°Ρ‚» http://citforum.ru/programming/java/babylon/
  3. Scarpino M., Holder S., Ng S., Mihalkovic L. SWT/JFace in Action Greenwich, CT, USA: Manning Publications Co., 2005. — 496 pp. ISBN 1−932 394−27−3
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ
ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π˜Π›Π˜