интересует следующий момент. Считываю help из файла, записываю его в JTextArea, после добавляю в JScrollPane. Так как это нечто на подобии мануала, то мне необходимо, чтобы текст в JTextArea не менялся, поэтому я сделал helpText.setEnabled(false); из-за этого программа перестала выдавать необходимый результат (текст пропал).
Результат при helpText.setEnabled(false);
Результат без этой строки
File helpFile = new File("help.help");
JTextArea helpText = new JTextArea();
helpText.setEnabled(false);
helpText.setDisabledTextColor(Color.decode("#FFFFFF"));
JcrollPane pane = new JScrollPane(helpText);
pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
pane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JDialog help = new JDialog(mainActivity, "Help");
help.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
int widthActivity = (dimension.width - 800) / 2;
int heightActivity = (dimension.height - 600) / 2;
help.setBounds(widthActivity, heightActivity, 800, 600);
help.getContentPane().add(pane);
try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(helpFile.toString()), "cp1251"))) {
String s;
StringBuilder sb = new StringBuilder();
while((s=br.readLine())!=null){
sb.append(s).append(System.lineSeparator());
}
String text = sb.toString();
helpText.setText(text);
}
catch (IOException e1) {
logger.error("Ошибка при чтении файла помощи");
}
helpText.setDisabledTextColor(Color.decode("#FFFFFF"));
help.setVisible(true);
Если убрать строку helpText.setEbale(false); то программа будет выдавать необходимый результат. Но у меня цель такова, чтобы текст нельзя было редакторовать.
Можно еще каким-нибудь способом ограничить ввод в JTextArea?
Вам нужен метод TextComponent#setEditable(boolean);
JFrame jFrame = new JFrame();
JTextArea textArea = new JTextArea();
textArea.setText("hello\nhello");
textArea.setEditable(false);
jFrame.add(new JScrollPane(textArea));
jFrame.setSize(200,200);
jFrame.setLocationRelativeTo(null);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Продвижение своими сайтами как стратегия роста и независимости