Java JTextArea mehrzeiliger helfen
einem problem das ich habe ist, ich habe 2 JTextAreas und ich muss hinzufügen, eine Liste der Elemente, die Sie.
Das problem, das ich laufen lasse, ist der string nicht automatisch auf die nächste Zeile, wenn es das andere Ende erreicht, der JTextArea. So um dieses problem zu lösen habe ich versucht, dieses: (sorry, wenn mein code ist ein bisschen schlampig.)
public void setIncludeAndExclude(ArrayList<JComboBox> boxes){
String in = "",ex = "";
String[] inSplit, exSplit;
boolean[] include = new boolean[boxes.get(0).getModel().getSize()-1];
for(int i = 0; i < boxes.size(); i ++){
if(boxes.get(i).getSelectedIndex() != 0){
include[boxes.get(i).getSelectedIndex() -1] = true;
}
}
for(int i = 0; i < include.length; i ++){
if(include[i]){
//numToItem is a method that turns an int into a string e.g. 1 = "Acesss Doors"
in += (numToItem(i+1)+ ", ");
}else{
ex += (numToItem(i+1)+ ", ");
}
}
//take off the last comma
in = in.substring(0,in.lastIndexOf(","));
ex = ex.substring(0,ex.lastIndexOf(","));
//get how many lines there should be
inSplit = new String[(in.length()/100) +1];
exSplit = new String[(ex.length()/100) +1];
String temp;
int istart = 0, iend = Math.min(100, in.length()), estart = 0, eend = Math.min(100, ex.length());
for(int i = 0; i < inSplit.length; i ++){
try{
temp = in.substring(istart, iend);
int Iindex = temp.lastIndexOf(",");
temp = ex.substring(estart, eend);
int Eindex = temp.lastIndexOf(",");
inSplit[i] = in.substring(istart, Iindex);
exSplit[i] = ex.substring(estart, Eindex);
istart = Iindex; iend = Math.min(iend + 100, in.length());
estart = Eindex; eend = Math.min(eend + 100, ex.length());
}catch(Exception e){
e.printStackTrace();
}
}
//reset in and ex to ""
in = ""; ex = "";
//set in and ex to the new string with newline characters
for(int i = 0; i < inSplit.length; i ++){
in += inSplit[i] + "\n";
ex += exSplit[i] + "\n";
}
//set the text of the JTextAreas
Include.setText(in);
Exclude.setText(ex);
}
jede Hilfe, was könnte ich anders machen oder ändern würde sehr geschätzt
Du musst angemeldet sein, um einen Kommentar abzugeben.
JTextArea
hatsetLineWrap(...)
und diesetWrapStyleWord(...)
Methoden. Vielleicht alle Sie tun müssen ist, rufen Sie diese auf IhremJTextArea
's Einstellung beide auf true.Ein wenig Kritik: dein code ist sehr schwer zu interpretieren, da Sie geben keine Auskunft darüber, welche Variablen sind JTextAreas (was ich vermute, sind die "Einschließen" und "Ausschließen"), und keine Kommentare, was ist zu tun, was. Bitte schreiben Sie Ihre Fragen hier mit der Idee, dass wir nichts wissen über den code und können nicht Gedanken Lesen. Je klarer Sie Ihre Frage, in der Regel desto leichter ist es zu beantworten. Danke.
Vielleicht eine bessere Lösung ist die Verwendung von JList. Sehen Wie Verwenden von Listen.
Den code, den Sie geschrieben ist nicht vollständig. Wenn Sie immer noch wollen, verwenden Sie einen text-Bereich Lösung dann posten Sie Ihre SSCCE, die das problem veranschaulicht.