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