Extends jtextarea
Geplaatst: wo 25 jan 2012, 18:06
Ik wil een JTextArea aanpassen zodat er een aanpasbar tekst en een niet aanpasbare tekst in komt. Indien er geklikt wordt zal de niet aanpasbare tekst gewoon verdwijnen:
Nu zal het gebruik van JTextArea.setText(String text) nog problemen opleveren. Kan ik deze methode overriden zodat die text ook in de variabele textPublic zet?
Code: Selecteer alles
package applicationGUI;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.JTextArea;
@SuppressWarnings("serial")
public class TextArea2 extends JTextArea {
protected String textPublic;
protected String textPrivate;
public TextArea2() {
super();
createFocusMethod();
textPublic = "";
textPrivate = "";
setText(textPublic);
}
public TextArea2(int rows, int columns) {
super(rows, columns);
createFocusMethod();
textPublic = "";
textPrivate = "";
setText(textPublic);
}
public TextArea2(String text, int rows, int columns) {
super(text, rows, columns);
textPublic = text;
textPrivate = "";
createFocusMethod();
setText(textPublic + textPrivate);
}
public TextArea2(String text) {
super(text);
textPublic = text;
textPrivate = "";
createFocusMethod();
setText(textPublic + textPrivate);
}
public void setPublicText(String text) {
textPublic = text;
setText(textPublic + textPrivate);
}
public void setPrivateText(String text) {
textPrivate = text;
setText(textPublic + textPrivate);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(this.getRootPane().getWidth(), this.getRowHeight()
* this.getLineCount());
}
@Override
public Dimension getMaximumSize() {
return this.getPreferredSize();
}
@Override
public Dimension getMinimumSize() {
return new Dimension(this.getRootPane().getWidth(), this.getRowHeight());
}
private void createFocusMethod() {
addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent arg0) {
setText(textPublic);
}
@Override
public void focusLost(FocusEvent arg0) {
textPublic = getText();
setText(textPublic + textPrivate);
}
});
}
}
Verborgen inhoud
Nu zal het gebruik van JTextArea.setText(String text) nog problemen opleveren. Kan ik deze methode overriden zodat die text ook in de variabele textPublic zet?