Skip to content

Commit 78f13be

Browse files
authored
will they do unto you for my name's sake
will they do unto you for my name's sake
1 parent a9fb8a1 commit 78f13be

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
2+
//But all these things will they do unto you for my name's sake, because they know not him that sent me.(John 15:21)
3+
4+
package com.javarush.task.task32.task3209.actions;
5+
6+
import javax.swing.*;
7+
import javax.swing.text.MutableAttributeSet;
8+
import javax.swing.text.SimpleAttributeSet;
9+
import javax.swing.text.StyleConstants;
10+
import javax.swing.text.StyledEditorKit;
11+
import java.awt.event.ActionEvent;
12+
13+
public class StrikeThroughAction extends StyledEditorKit.StyledTextAction {
14+
15+
public StrikeThroughAction() {
16+
super(StyleConstants.StrikeThrough.toString());
17+
}
18+
19+
public void actionPerformed(ActionEvent actionEvent) {
20+
JEditorPane editor = getEditor(actionEvent);
21+
if (editor != null) {
22+
MutableAttributeSet mutableAttributeSet = getStyledEditorKit(editor).getInputAttributes();
23+
SimpleAttributeSet simpleAttributeSet = new SimpleAttributeSet();
24+
StyleConstants.setStrikeThrough(simpleAttributeSet, !StyleConstants.isStrikeThrough(mutableAttributeSet));
25+
setCharacterAttributes(editor, simpleAttributeSet, false);
26+
}
27+
}
28+
}
29+
30+
/*
31+
HTML Editor (12)
32+
33+
12.1. Напиши реализацию класса RedoAction:
34+
35+
12.1.1. Добавь в класс поле View. Добавь его инициализацию в конструкторе.
36+
37+
12.1.2. Реализуй метод actionPerformed(ActionEvent actionEvent), он должен вызывать метод redo() у представления.
38+
39+
12.2. Напиши реализацию класса UndoAction по аналогии с RedoAction.
40+
41+
12.3. Изучи реализацию класса StrikeThroughAction, которую ты получил вместе с заданием и реализуй аналогичным образом классы:
42+
43+
12.3.1. SubscriptAction
44+
45+
12.3.2. SuperscriptAction
46+
47+
Запусти программу и убедись, что пункты меню Подстрочный знак, Надстрочный знак и Зачеркнутый работают. Пункты, отвечающие за отмену и возврат действия пока не подключены к контроллеру и мы не сможем их проверить.
48+
49+
50+
51+
52+
53+
Требования:
54+
55+
1. Класс RedoAction должен содержать поле View view.
56+
57+
2. Конструктор класса RedoAction(View view) должен инициализировать поле view.
58+
59+
3. Метод actionPerformed(ActionEvent actionEvent) класса RedoAction должен вызывать метод redo() у представления.
60+
61+
4. Класс UndoAction должен содержать поле View view.
62+
63+
5. Конструктор класса UndoAction(View view) должен инициализировать поле view.
64+
65+
6. Метод actionPerformed(ActionEvent actionEvent) класса UndoAction должен вызывать метод undo() у представления.
66+
67+
7. Конструктор без параметров класса SubscriptAction должен вызывать конструктор суперкласса с параметром StyleConstants.Subscript.
68+
69+
8. Метод actionPerformed(ActionEvent actionEvent) класса SubscriptAction должен использовать метод setSubscript у StyleConstants с параметрами: SimpleAttributeSet и !StyleConstants.isSubscript(mutableAttributeSet).
70+
71+
9. Конструктор без параметров класса SuperscriptAction должен вызывать конструктор суперкласса с параметром StyleConstants.Superscript.
72+
73+
10. Метод actionPerformed(ActionEvent actionEvent) класса SuperscriptAction должен использовать метод setSuperscript у StyleConstants с параметрами: SimpleAttributeSet и !StyleConstants.isSuperscript(mutableAttributeSet).
74+
75+
76+
*/

0 commit comments

Comments
 (0)