У меня есть JTextArea под названием premiseText. Он инициализируется значением по умолчанию и имеет значение setEditable(false). Когда я хочу, чтобы пользователь изменил это значение, у меня есть JButton с именем editPremise, который в ActionPerformed этой кнопки вызывает setEditable(true). У меня есть еще один JButton, который имеет значение setEnabled(false), но который изменяется на setEnabled(true) внутри того же ActionPerformed. Эта вторая кнопка становится активной, как и ожидалось, но JTextArea никогда не становится доступной для редактирования. У меня есть JFrame, который настроен на замену того, что отображается JPanel, в ответ на другой набор JButtons. Этот код добавлен ниже:
public class ConceptPanel extends JPanel {
PrintManager pm = new PrintManager();
ConceptData data;
Border raisedbevel = BorderFactory.createRaisedBevelBorder();
JPanel premisePanel;
JButton updatePremiseButton;
JLabel premiseLabel;
JTextArea premiseText;
JPanel premiseButtonPanel;
public ConceptPanel (ConceptData inData) {
data = inData;
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
createPremisePanel();
}//end constructor ConceptPanel
public void createPremisePanel() {
premisePanel= new JPanel();
premisePanel.setBorder(raisedbevel);
premisePanel.setLayout(new BoxLayout(premisePanel, BoxLayout.LINE_AXIS));
updatePremiseButton = new JButton("UPDATE PREMISE");
premiseLabel = new JLabel("Briefly descripe the premise of this story: ");
premiseLabel.setHorizontalAlignment(SwingConstants.LEFT);
premisePanel.add(premiseLabel);
premiseText = new JTextArea(1, 60);
premiseText.setText(data.getPremise());
premiseText.setEditable(false);
premisePanel.add(premiseText);
JPanel premiseButtonPanel = new JPanel();
premiseButtonPanel.setLayout(new BoxLayout(premiseButtonPanel, BoxLayout.LINE_AXIS));
JButton cancelPremiseButton = new JButton("CANCEL");
cancelPremiseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent cancelEvent) {
premiseText.setText(data.getPremise());
premiseText.setEditable(false);
updatePremiseButton.setEnabled(false);
}
});
premiseButtonPanel.add(cancelPremiseButton);
JButton editPremiseButton = new JButton("EDIT PREMISE");
editPremiseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent editEvent) {
pm.print("edit Premise pressed");
premiseText.setEditable(true);
updatePremiseButton.setEnabled(true);
}
});
premiseButtonPanel.add(editPremiseButton);
updatePremiseButton.setEnabled(false);
updatePremiseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent updateEvent) {
String premiseString = premiseText.getText();
if(!premiseString.equals("") && !premiseString.equals(" ") && !premiseText.equals(null)) {
pm.print("PremisePanel::updatePremiseButton action: premiseString is " + premiseString);
data.setPremise(premiseString);
//premiseText.setEditable(false);
}
updatePremiseButton.setEnabled(false);
}
});
premiseButtonPanel.add(updatePremiseButton);
premisePanel.add(premiseButtonPanel);
this.add(premisePanel);
}//end createPremisePanel
}//end class ConceptPanel
public void swapDisplay(int displayIndex) {
displayFrame.getContentPane().removeAll();
switch(displayIndex) {
case(0)://concept
displayFrame.getContentPane().add(new ConceptPanel(conceptData));
break;
displayFrame.pack();
displayFrame.repaint();
}//end displaySwap
Подробнее здесь: https://stackoverflow.com/questions/798 ... ot-working
JTextArea.setEditable(true) не работает ⇐ JAVA
Программисты JAVA общаются здесь
1766255176
Anonymous
У меня есть JTextArea под названием premiseText. Он инициализируется значением по умолчанию и имеет значение setEditable(false). Когда я хочу, чтобы пользователь изменил это значение, у меня есть JButton с именем editPremise, который в ActionPerformed этой кнопки вызывает setEditable(true). У меня есть еще один JButton, который имеет значение setEnabled(false), но который изменяется на setEnabled(true) внутри того же ActionPerformed. Эта вторая кнопка становится активной, как и ожидалось, но JTextArea никогда не становится доступной для редактирования. У меня есть JFrame, который настроен на замену того, что отображается JPanel, в ответ на другой набор JButtons. Этот код добавлен ниже:
public class ConceptPanel extends JPanel {
PrintManager pm = new PrintManager();
ConceptData data;
Border raisedbevel = BorderFactory.createRaisedBevelBorder();
JPanel premisePanel;
JButton updatePremiseButton;
JLabel premiseLabel;
JTextArea premiseText;
JPanel premiseButtonPanel;
public ConceptPanel (ConceptData inData) {
data = inData;
this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
createPremisePanel();
}//end constructor ConceptPanel
public void createPremisePanel() {
premisePanel= new JPanel();
premisePanel.setBorder(raisedbevel);
premisePanel.setLayout(new BoxLayout(premisePanel, BoxLayout.LINE_AXIS));
updatePremiseButton = new JButton("UPDATE PREMISE");
premiseLabel = new JLabel("Briefly descripe the premise of this story: ");
premiseLabel.setHorizontalAlignment(SwingConstants.LEFT);
premisePanel.add(premiseLabel);
premiseText = new JTextArea(1, 60);
premiseText.setText(data.getPremise());
premiseText.setEditable(false);
premisePanel.add(premiseText);
JPanel premiseButtonPanel = new JPanel();
premiseButtonPanel.setLayout(new BoxLayout(premiseButtonPanel, BoxLayout.LINE_AXIS));
JButton cancelPremiseButton = new JButton("CANCEL");
cancelPremiseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent cancelEvent) {
premiseText.setText(data.getPremise());
premiseText.setEditable(false);
updatePremiseButton.setEnabled(false);
}
});
premiseButtonPanel.add(cancelPremiseButton);
JButton editPremiseButton = new JButton("EDIT PREMISE");
editPremiseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent editEvent) {
pm.print("edit Premise pressed");
premiseText.setEditable(true);
updatePremiseButton.setEnabled(true);
}
});
premiseButtonPanel.add(editPremiseButton);
updatePremiseButton.setEnabled(false);
updatePremiseButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent updateEvent) {
String premiseString = premiseText.getText();
if(!premiseString.equals("") && !premiseString.equals(" ") && !premiseText.equals(null)) {
pm.print("PremisePanel::updatePremiseButton action: premiseString is " + premiseString);
data.setPremise(premiseString);
//premiseText.setEditable(false);
}
updatePremiseButton.setEnabled(false);
}
});
premiseButtonPanel.add(updatePremiseButton);
premisePanel.add(premiseButtonPanel);
this.add(premisePanel);
}//end createPremisePanel
}//end class ConceptPanel
public void swapDisplay(int displayIndex) {
displayFrame.getContentPane().removeAll();
switch(displayIndex) {
case(0)://concept
displayFrame.getContentPane().add(new ConceptPanel(conceptData));
break;
displayFrame.pack();
displayFrame.repaint();
}//end displaySwap
Подробнее здесь: [url]https://stackoverflow.com/questions/79842308/jtextarea-seteditabletrue-is-not-working[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия