Сразу несколько пролем с 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);