Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Legollas Dias

Frame nao Quebra Linha

Recommended Posts

Amigos do forum, acho que a duvida de hoje deve ser bem simples para vcs, eu q sou meio novo nisso mesmo, seguinte, eu tenho um app aki, que quando abre, ele randomiza uma frase de um arquivo cheio de frases, esta funcionando direitinho.

Soh nao consegui fazer o seguinte. Quando a frase eh muito grande, o frame ultrapassa o fim da tela, e nao eh possivel ler o pensamento completo, queria saber como fazer para ele quebrar a linha automaticamente quando o pensamento for maior que o tamanho da tela, e se possivel, fazer ele ja executar no centro do monitor, pq ele jah executa no topo da tela, queria ele inicializando bem no meio. Sera que alguem consegue me ajudar?! Segue uma SSmfmnu.jpg



public static void main(String args[]) throws IOException {
        escolhendoPensamento pensamento = new escolhendoPensamento();
        numeroPensamentos numero = new numeroPensamentos();
        JFrame frame = new JFrame("Pensamento sorteado entre os " + numeroPensamentos.numeroPensamentos()+" presentes na base");
        JLabel label = new JLabel(pensamento.buscarPalavraAleatoria());
        frame.getContentPane().add(label);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

Tah ai o codigo para ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode verificar o número de caracteres do label e se for maior do que o esperado, podes adicionar uma quebra de linha ao texto. Creio que objeto JLabel aceita tags HTML. Portanto se tu colocares um <br/> no texto haverá uma quebra de linha.

if (label.getText().length() > 50) {
  label.setText(label.getText().substring(0, 49) + "<br/>" + label.getText().substring(50, label.getText().length());
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verdade! Terás que implementar um código que verifique isso. Uma idéia seria quebrar a String me pedaços (String.split(" ")) e depois concatenar as partes da String com uma StringBuilder. Exemplo:

String texto = "Meu texto muito grande que não cabe no quadro.";
String[] palavras = texto.split(" ");
StringBuilder builder = new StringBuilder();

for (String palavra : palavras) {
  if (builder.toString().length() > 45) {
    builder.append("<br/>");
  }
  builder.append(palavra + " ");
}

label.setText(builder.toString());

Não testei este código, nem ao menos compilei. É só uma idéia pra começares a trabalhar sobre. Pode usá-la ou então partir pra outra proposta. Boa sorte! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ow amigao, consegui de uma forma simples aki..

soh adicionei as tags html

 

 

JLabel label = new JLabel("<html>" + pensamento.buscarPalavraAleatoria() + "<html>");

 

obrigado ae =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.