Pessoal, bom dia
Estou com uma dúvida bem básica e, acredito eu, que seja fácil de resolver.
Eu tenho um DataTable que exibe números de contrato para cada funcionário da empresa. No entanto, alguns funcionários podem ter mais de um contrato. Para não ficar repetindo campos, gostaria de concatenar esses contratos em uma única String (até porque, um funcionário, normalmente, tem no máximo 3 contratos).
O que eu queria fazer era gerar uma String onde cada valor estaria separado por uma quebra de linha. Tá tentei da seguinte forma:
contrato1.concat("\n"+contrato2);
Mas não deu certo.
Caso tenha alguma forma de fazer isso, poderiam me ajudar por favor?
Grato.
depende no que vc vai exibir este valor
por exemplo se vc exibir em um textField ele nao vai mostrar
mas se for no textArea dai da certo
vlw
Já tentou com o StringBuffer?
StringBuffer sb = new StringBuffer();
sb.append(contrato1+"\n"+contrato2+"\n"+contrato3);
String s = sb.toString();
Não sei se entendi bem o que você queria…
Abraços,
Opa, vtr.oliveira , pelo que entendi faça desta forma
crie um metodo que pegue os valores dos campos da JTABLE
String valorCampo = getCamposJTable(int coluna, int linha);
junte os valores
String contratos = getCamposJTable(0, 1) + “\n” + getCamposJTable(1, 1) + “\n” + getCamposJTable(3, 1);
System.out.println(contratos);
depois para pegar
String[] contratos2 = contratos.split("\n)
for (int i = 0;i<contratos2.lenght;i++{
System.out.println(“Contrato nº” + i +": " + contratos2[i]);
}
Espero que lhe ajude
vtr.oliveira,
uma informação importante é que quando vc usa o .concat de uma String ele retorna uma nova String com as duas concatenadas. A string que vc chamou o método continua intacta. Ex:
String s1 = "Hello";
String s2 = " World!!!";
String s3 = s1.concat(s2);
System.out.println(s3); // imprime "Hello World!!!"
Cara acho que tbm não entendi.
Mas …
public class VtrOliveira{
public static void main(String[] args) {
String contrato1 = "458";
String contrato2 = "111";
String contrato3 = "857";
System.out.println("CONTRATO 1 " + contrato1 + "\n" +
"CONTRATO 2 " + contrato2 + "\n" +
"CONTRATO 3 " + contrato3);
}
}
Ao invés de criar as Strings como eu Fiz vais ter que pegar da table.
Pelo que lembro tem um método chamado.
getValueAt(linhas, colunas)
através dele tu consegue pegar o valor de cada célula da tua table.
Flw.
Ola Rastaman, podes postar o fonte dentro das tags Aqui fica o código
fica mais facil de visualizar.
Abraço.
Droga hehehe.
Tags [code] depois tens que fechar a mesma com uma / na frente do code

Strings são imutáveis.
Todo método que, em teoria, altera o valor da String, na verdade, retorna uma nova String.
Exemplos:
String nome = "Jairo";
nome.concat(" Luiz");
System.out.println(nome); // Jairo
String nick = "Tang";
nick = nick.concat("Zero");
System.out.println(nick) // TangZero
Caso voce precise fazer inumeras alterações em uma String, utilize StringBuilder no Java 5+ ou StringBuffer no Java 4-.

Acho que esse tipo de widget não tem quebra de Strings, assim como o JLabel e o JTextField do Swing.
Bom, acho que não tem como fazer.
Desculpe não ter sido extremamente claro, mas estou querendo exibir estes valores dentro de um outputText.
O que eu realmente queria, caso ainda não tenha ficado totalmente claro, era algo mais ou menos assim:
Suponhamos que, para um determinado funcionário, eu tenha os seguintes contratos: U2100 e 14-N
eu gostaria, se for possível, que na exibição da String ficasse assim:
U2100
14-N
não assim (que é como aparece):
U2100 14-N
E desculpe mais uma vez por não ter sido muito claro.
Não queres postar teu código para nós dar uma olhada?
:roll:
Flw.
Bom, aí vai o código…
tenho um método que retorna a String que será exibida no outputText.
Esse método, organiza em uma única String os valores contidos em um array de Strings…
está da seguinte forma:
public String getNContratos(){
String arrayContratos[] = formataListDesenhos(); //este método retorna um array com todos os contratos que o funcionário possui
String nContrato = arrayContratos[0]; //recebe o primeiro contrato do array
//Se o funcionário tiver mais de um contrato apropriado
if(arrayContratos.length > 1){
for(int i=1; i<arrayContratos.length; i++){
nContrato = nContrato.concat("\n"+arrayContratos[i]);
}
}
return nContrato;
}
}
É pelo jeito é na hora de passar para o outputText pq dessa forma funciona.
public class Vtr {
public static void main(String[] args) {
System.out.println(new Vtr().getNContratos());
}
public String getNContratos(){
String[] arrayContratos = new String []{"Paulo", "Roberto", "Faulstich"};
String nContrato = arrayContratos[0];
if(arrayContratos.length > 1){
for(int i=1; i<arrayContratos.length; i++){
nContrato = nContrato.concat("\n" + arrayContratos[i]);
}
}
return nContrato;
}
}
Tentei pelo menos.

>
Creio que o outputText não aceite este tipo de comando ("\n"), porque com System.out funciona normalmente…
De qualquer forma, obrigado pelas dicas