Сразу несколько пролем с 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д