Einfache, schelle Frage: Ich hab eine JTextArea jta1. (Einfache Darstellung von auch mehrzeilige, Text) Was muss ich adden und im eigene, Listener überschreiben, wenn ich nur mitbekommen möchte, ob/wenn ein Zeichen eingetippt oder eingefügt wurde? :grr:
*** Edit ***
Habs mittlerweile herausgefunden: Über jta1.getDocument() und jta1.getDocument().addDocumentListener(new DocumentListener() { (sowie insertUpdate usw.) funktionierts eigentlich ganz gut.
Dadurch braucht man ja kein Menüs und keine Buttons.
Ich brauchte das Ganze für meinen Quelltext-Verdreher…
private static irgendwas_31 irgendwas_32(irgendwas_31 str) {
try {
irgendwas_31[] keys = "abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for if goto implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while".irgendwas_33(" ");
irgendwas_14.sort(keys);
irgendwas_15<irgendwas_31, irgendwas_31> map = new irgendwas_15<irgendwas_31, irgendwas_31>();
for (irgendwas_31 irgendwas_34 : keys) {
map.put(irgendwas_34, irgendwas_34);
}
int irgendwas_35 = 1;
irgendwas_20 pat = irgendwas_20.irgendwas_36("\\w{5,}");
irgendwas_9 br = new irgendwas_9(new irgendwas_12(str));
irgendwas_13 sw = null;
{
int len = 16;
while (len <= str.irgendwas_37()) {
len <<= 1;
}
irgendwas_38.out.irgendwas_39("len = " + len);
sw = new irgendwas_13(len);
}
irgendwas_11 pw = new irgendwas_11(sw);
irgendwas_31 line;
while ((line = br.irgendwas_40()) != null) {
int irgendwas_41 = 0;
irgendwas_19 m = pat.irgendwas_42(line);
while (m.find()) {
pw.irgendwas_43(line.irgendwas_44(irgendwas_41, m.irgendwas_41()));
irgendwas_41 = m.end();
if (!map.irgendwas_45(m.irgendwas_46())) {
map.put(m.irgendwas_46(), "irgendwas_47" + irgendwas_35++);
}
pw.irgendwas_43(map.get(m.irgendwas_46()));
}
pw.irgendwas_39(line.irgendwas_44(irgendwas_41));
}
pw.irgendwas_48();
return sw.irgendwas_49();
} catch (irgendwas_10 irgendwas_50) {
//irgendwas_51
return null;
}
}
private static Set<irgendwas_31> irgendwas_52(irgendwas_31 str, int idx, Set<irgendwas_31> set) {
int irgendwas_53 = idx + 1;
if (irgendwas_53 >= str.irgendwas_37()) {
if (!set.irgendwas_54(str)) {
set.add(str);
irgendwas_52(str, 0, set);
}
} else {
irgendwas_52(str, irgendwas_53, set);
irgendwas_52(str.irgendwas_44(0, idx) + str.irgendwas_55(irgendwas_53) + str.irgendwas_55(idx) + str.irgendwas_44(irgendwas_53 + 1), irgendwas_53, set);
}
return set;
}
/**
* @irgendwas_56 args the irgendwas_57 line irgendwas_58
*/
public static void main(irgendwas_31[] args) throws irgendwas_10 {
// TODO code irgendwas_59 irgendwas_60 here
/*irgendwas_38.out.irgendwas_39(irgendwas_52("irgendwas_61", 0, new irgendwas_16<irgendwas_31>()));
irgendwas_38.out.irgendwas_39(irgendwas_52("irgendwas_61", 0, new irgendwas_17<irgendwas_31>()));
irgendwas_31[] keys = "abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for if goto implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while".irgendwas_33(" ");
irgendwas_14.sort(keys);
irgendwas_15<irgendwas_31, irgendwas_31> map = new irgendwas_15<irgendwas_31, irgendwas_31>();
for (irgendwas_31 irgendwas_34 : keys) {
map.put(irgendwas_34, irgendwas_34);
}
int irgendwas_35 = 1;
irgendwas_20 pat = irgendwas_20.irgendwas_36("\\w{5,}");
/*irgendwas_62 jfc = new irgendwas_62();
if (jfc.irgendwas_63(null) != irgendwas_62.irgendwas_64) {
return;
}
File f1 = jfc.irgendwas_65();
if (jfc.irgendwas_66(null) != irgendwas_62.irgendwas_64) {
return;
}
File f2 = jfc.irgendwas_65();
if (!f1.irgendwas_67() || !f1.irgendwas_68() || !f2.irgendwas_67() || !f2.irgendwas_69() || f1.irgendwas_70(f2)) {
return;
}*/
irgendwas_23 jf = new irgendwas_23("irgendwas_71");
jf.irgendwas_72(new irgendwas_8(1, 2));
final irgendwas_25 jta1 = new irgendwas_25();
final irgendwas_25 jta2 = new irgendwas_25();
jf.add(new irgendwas_24(jta1));
jf.add(new irgendwas_24(jta2));
jta1.irgendwas_73().irgendwas_74(new irgendwas_30() {
@irgendwas_75
public void irgendwas_76(irgendwas_29 e) {
irgendwas_26.irgendwas_77(new irgendwas_78() {
@irgendwas_75
public void run() {
jta2.irgendwas_79(irgendwas_32(jta1.irgendwas_80()));
}
});
}
@irgendwas_75
public void irgendwas_81(irgendwas_29 e) {
irgendwas_26.irgendwas_77(new irgendwas_78() {
@irgendwas_75
public void run() {
jta2.irgendwas_79(irgendwas_32(jta1.irgendwas_80()));
}
});
}
@irgendwas_75
public void irgendwas_82(irgendwas_29 e) {
irgendwas_26.irgendwas_77(new irgendwas_78() {
@irgendwas_75
public void run() {
jta2.irgendwas_79(irgendwas_32(jta1.irgendwas_80()));
}
});
}
});
jf.pack();
jf.irgendwas_83(720, 540);
jf.irgendwas_84(irgendwas_27.irgendwas_85);
jf.irgendwas_86(true);
/*irgendwas_9 br = new irgendwas_9(new irgendwas_87(f1), 1024 * 1024 * 16);
irgendwas_11 pw = new irgendwas_11(new irgendwas_88(new irgendwas_89(f2), 1024 * 1024 * 16));
irgendwas_31 line;
while ((line = br.irgendwas_40()) != null) {
int irgendwas_41 = 0;
irgendwas_19 m = pat.irgendwas_42(line);
while (m.find()) {
pw.irgendwas_43(line.irgendwas_44(irgendwas_41, m.irgendwas_41()));
irgendwas_41 = m.end();
if (!map.irgendwas_45(m.irgendwas_46())) {
map.put(m.irgendwas_46(), "irgendwas_47" + irgendwas_35++);
}
pw.irgendwas_43(map.get(m.irgendwas_46()));
}
pw.irgendwas_39(line.irgendwas_44(irgendwas_41));
}
pw.irgendwas_48();
pw.irgendwas_90();
br.irgendwas_90();*/
}
}```[/spoiler]
Ich hatte bisher/zunächst mit .java-Dateien (source code) gearbeitet, aber mit jta und copy ‚n‘ paste ist das viel angenehmer. Um die GUI nicht aufzublähen, hab ich mich also für new DocumentListener() entschieden, der bekommt alles mit (DocumentEvent: getOffset() und getLength()).