String com duas linhas

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

:stuck_out_tongue:

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-.

:wink:

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.

:stuck_out_tongue:

>

Creio que o outputText não aceite este tipo de comando ("\n"), porque com System.out funciona normalmente…

De qualquer forma, obrigado pelas dicas