Сразу несколько пролем с JTextArea - Java

Узнай цену своей работы

Формулировка задачи:

Привет. Есть фрейм, в котором есть меню. Смысл проги - что-то на подобии читалки. Нажимаешь на кнопку читать и читаешь себе, что тебе нужно. Но никак не могу обуздать JTextArea. Когда ее инициализирую
Листинг программы
  1. textArea = new JTextArea();
  2. content.add(textArea);
  3. textArea.setLineWrap(true);
  4. textArea.setMinimumSize(new Dimension(780, 590));
То она все равно появляется с таким размером как на скрине. Как сделать так, что бы она была по размеру фрейма? Так же хочу реализовать "листание страниц", то есть в текстовую зону выводиться определенное ко-ство символов, потом нажал кнопку ">" и пролистал страницу, получив новое ко-ство симфолов. Пробую сделать так
Листинг программы
  1. public class ReadBook {
  2.  
  3. private FileDialog fileDialog;
  4. private BookReaderCallback callback;
  5.  
  6. public interface BookReaderCallback {
  7. void onReadComplete(String text);
  8. }
  9. public ReadBook(Frame parent) {
  10. fileDialog = new FileDialog(parent, "Select book", FileDialog.LOAD);
  11. }
  12. public void readBook() {
  13.  
  14. fileDialog.setVisible(true);
  15. if (fileDialog.getDirectory() == null || fileDialog.getFile() == null) {
  16. return;
  17. }
  18. Scanner in = null;
  19. String text = "";
  20. try {
  21. in = new Scanner(new File(fileDialog.getDirectory(),
  22. fileDialog.getFile()));
  23. } catch (FileNotFoundException e) {
  24. e.printStackTrace();
  25. }
  26. while (in.hasNext()) {
  27. text += in.nextLine() + "\n";
  28. }
  29. int stringLength = text.length();
  30. int intarray = stringLength / 100;
  31. for(int i = 0; i < stringLength; i++){
  32. txt = text;
  33. txt.substring(1000, 1001);
  34. }
  35. in.close();
  36. if (callback != null) {
  37. callback.onReadComplete(text);
  38. }
  39. }
  40. public void setCallback(BookReaderCallback callback) {
  41. this.callback = callback;
  42. }
  43. }
Ну и потом вызывать методы в обработчике событий с пункта меню
Листинг программы
  1. readMenuItem.addActionListener(new ActionListener(){
  2. public void actionPerformed(ActionEvent e)
  3. {
  4. textArea = new JTextArea();
  5. content.add(textArea);
  6. textArea.setLineWrap(true);
  7. textArea.setMinimumSize(new Dimension(780, 590));
  8. ReadBook bookReader = new ReadBook(frame);
  9. bookReader.setCallback(new ReadBook.BookReaderCallback() {
  10.  
  11. public void onReadComplete(String text) {
  12. textArea.setText(text);
  13. }
  14. });
  15. bookReader.readBook();
  16. forward = new JButton(">");
  17. forward.setVisible(true);
  18. backward = new JButton("<");
  19. backward.setVisible(true);
  20. content.add(backward);
  21. content.add(forward);
  22. forward.addActionListener(new ActionListener(){
  23. public void actionPerformed(ActionEvent e)
  24. {
  25. ReadBook rb = new ReadBook(frame);
  26. rb.setCallback(new ReadBook.BookReaderCallback() {
  27.  
  28. public void onReadComplete(String txt) {
  29. // Replace the text in the Label
  30. textArea.setText(txt);
  31. }
  32. });
  33. rb.readBookForward();
  34. }
  35. });
  36. }
  37. });
Знаю, что, что-то делаю не так но не могу понять что именно. Помогите пож разобраться в своем же гавнокоде

Решение задачи: «Сразу несколько пролем с JTextArea»

textual
Листинг программы
  1. content.setLayout(null);
  2. content.add(textArea);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут