Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. package lab8;
  2.  
  3. import java.awt.EventQueue;
  4. import java.awt.FileDialog;
  5. import java.awt.event.MouseAdapter;
  6. import java.awt.event.MouseEvent;
  7. import java.awt.BorderLayout;
  8.  
  9. import javax.swing.JFrame;
  10. import javax.swing.JPanel;
  11. import javax.swing.JButton;
  12. import javax.swing.JTextArea;
  13. import javax.swing.JScrollPane;
  14.  
  15. import java.io.BufferedReader;
  16. import java.io.File;
  17. import java.io.FileReader;
  18. import java.io.IOException;
  19.  
  20. public class ns {
  21.  
  22. private JFrame frame;
  23. private JTextArea tArea;
  24. private StringBuilder currentText = null;
  25.  
  26. /**
  27. * Launch the application.
  28. */
  29. public static void main(String[] args) {
  30. EventQueue.invokeLater(new Runnable() {
  31. public void run() {
  32. try {
  33. ns window = new ns();
  34. window.frame.setVisible(true);
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. }
  38. }
  39. });
  40. }
  41.  
  42. /**
  43. * Create the application.
  44. */
  45. public ns() {
  46. initialize();
  47. }
  48.  
  49. /**
  50. * Initialize the contents of the frame.
  51. */
  52. private void initialize() {
  53. frame = new JFrame();
  54. frame.setBounds(100, 100, 450, 300);
  55. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  56.  
  57. JPanel panel = new JPanel();
  58. frame.getContentPane().add(panel, BorderLayout.NORTH);
  59.  
  60. JButton btnLoadText = new JButton("Текст");
  61. btnLoadText.addMouseListener(new MouseAdapter() {
  62. @Override
  63. public void mouseClicked(MouseEvent arg0) {
  64. FileDialog fd = new FileDialog(new JFrame(), "Текст");
  65. fd.show();//Кликабельность кнопки
  66. currentText = loadText(fd.getDirectory() + fd.getFile());
  67. tArea.setText(currentText.toString());
  68. }
  69. });
  70. panel.add(btnLoadText);
  71.  
  72. JButton btnChange = new JButton("Обработать");
  73. btnChange.addMouseListener(new MouseAdapter() {
  74. @Override
  75. public void mouseClicked(MouseEvent e) {
  76. change();
  77. }
  78. });
  79.  
  80. panel.add(btnChange);
  81.  
  82. tArea = new JTextArea();
  83.  
  84. JScrollPane scrollPane = new JScrollPane(tArea);
  85. frame.getContentPane().add(scrollPane, BorderLayout.CENTER);
  86. }
  87.  
  88. private StringBuilder loadText(String path) {
  89. StringBuilder res = new StringBuilder();
  90. try (BufferedReader br = new BufferedReader(new FileReader(path))) {
  91. while (br.ready()) {
  92. res.append(br.readLine() + System.lineSeparator());
  93. }
  94. } catch (IOException ex) {
  95.  
  96. }
  97. return res;
  98. }
  99.  
  100. private void change() {
  101. if (currentText != null) {
  102. StringBuilder newText = new StringBuilder();
  103. StringBuilder word = new StringBuilder();
  104. char ch;
  105. boolean inWord = false;
  106. for (int i = 0; i < currentText.length(); i++) {
  107. ch = currentText.charAt(i);
  108. if (Character.isAlphabetic(ch)) {
  109. if (!inWord) {
  110. inWord = true;
  111. word.setLength(0);
  112. }
  113.  
  114. word.append(ch);
  115. } else {
  116. if (check(word)) {
  117. newText.append(toLowerCase(word));
  118. } else {
  119. newText.append(word);
  120. }
  121. newText.append(ch);
  122. word.setLength(0);
  123. inWord = false;
  124. }
  125. }
  126. tArea.setText(newText.toString());
  127. }
  128. }
  129.  
  130. private boolean check(StringBuilder word) {
  131. if (word.length() == 0) {
  132. return false;
  133. }
  134. char lastCh = word.charAt(0);
  135. for (int i = 1; i < word.length(); i++) {
  136. if (lastCh == word.charAt(i)) {
  137. return true;
  138. }
  139. lastCh = word.charAt(i);
  140. }
  141. return false;
  142. }
  143.  
  144. private StringBuilder toLowerCase(StringBuilder word) {
  145. StringBuilder res = new StringBuilder();
  146. for (int i = 0; i < word.length(); i++) {
  147. res.append(Character.toLowerCase(word.charAt(i)));
  148. }
  149. return res;
  150. }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement