one problem I'm having is i have 2 JTextAreas and i need to add a list of items to them. The problem I'm running into is the string doesn't automatically move to the next line when it reaches the end of the JTextArea. So to solve this problem I tried this: (sorry if my code is kinda sloppy.)
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);
}
any help on what i could do different or change would be much appreciated
JTextArea
has setLineWrap(...)
and the setWrapStyleWord(...)
methods. Perhaps all you need to do is call these on your JTextArea
's setting both to true.
One bit of criticism: your code is very hard to interpret as you give no indication which variables are JTextAreas (which I'm guessing are "Include" and "Exclude"), and no comments as to what is doing what. Please write your questions here with the idea that we know nothing about your code and can't read minds. The clearer your question, usually the easier it is to answer. Thanks.