JTextArea.setEditable(true) не работаетJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JTextArea.setEditable(true) не работает

Сообщение 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


Подробнее здесь: https://stackoverflow.com/questions/798 ... ot-working
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»