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

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

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

Привет. Есть фрейм, в котором есть меню. Смысл проги - что-то на подобии читалки. Нажимаешь на кнопку читать и читаешь себе, что тебе нужно. Но никак не могу обуздать JTextArea. Когда ее инициализирую
textArea = new JTextArea();
                content.add(textArea);
                textArea.setLineWrap(true);
                textArea.setMinimumSize(new Dimension(780, 590));
То она все равно появляется с таким размером как на скрине. Как сделать так, что бы она была по размеру фрейма? Так же хочу реализовать "листание страниц", то есть в текстовую зону выводиться определенное ко-ство символов, потом нажал кнопку ">" и пролистал страницу, получив новое ко-ство симфолов. Пробую сделать так
public class ReadBook {

      private FileDialog fileDialog;
      private BookReaderCallback callback;

      public interface BookReaderCallback {
        
        void onReadComplete(String text);
      }
 
      public ReadBook(Frame parent) {
        fileDialog = new FileDialog(parent, "Select book", FileDialog.LOAD);
      }
      
      public void readBook() {

        fileDialog.setVisible(true);
 
        if (fileDialog.getDirectory() == null || fileDialog.getFile() == null) {
          return;
        }
 
        Scanner in = null;
        String text = "";
        try {
          in = new Scanner(new File(fileDialog.getDirectory(),
              fileDialog.getFile()));
        } catch (FileNotFoundException e) {
          e.printStackTrace();
        }
        while (in.hasNext()) {
          text += in.nextLine() + "\n";
        }
int stringLength = text.length();
            int intarray = stringLength / 100;
            
            for(int i = 0; i < stringLength; i++){
                txt = text;
                txt.substring(1000, 1001);
            }
        in.close();
    
        if (callback != null) {
          callback.onReadComplete(text);
        }
 
      }
public void setCallback(BookReaderCallback callback) {
        this.callback = callback;
      }
 
}
Ну и потом вызывать методы в обработчике событий с пункта меню
readMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
                
                textArea = new JTextArea();
                content.add(textArea);
                textArea.setLineWrap(true);
                textArea.setMinimumSize(new Dimension(780, 590));
    
        ReadBook bookReader = new ReadBook(frame);
        
        bookReader.setCallback(new ReadBook.BookReaderCallback() {

          public void onReadComplete(String text) {
            
            textArea.setText(text);
          }
        });
        
        bookReader.readBook();
        
        forward = new JButton(">");
        forward.setVisible(true);
        backward = new JButton("<");
        backward.setVisible(true);
        content.add(backward);
        content.add(forward);
        
        forward.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
            ReadBook rb = new ReadBook(frame);
            rb.setCallback(new ReadBook.BookReaderCallback() {

                  public void onReadComplete(String txt) {
                    // Replace the text in the Label
                    textArea.setText(txt);
                  }
                });
            
            rb.readBookForward();
            }
            });
 
            }
        });
Знаю, что, что-то делаю не так но не могу понять что именно. Помогите пож разобраться в своем же гавнокоде

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

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

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


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

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

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