Fiz um programa de perguntas e respostas, ele recupera as perguntas de um arquivo txt, e executa um sorteio entre as perguntas.
A pergunta sorteada e lançada no formulário em uma JLabel, só que a pergunta vem em apenas uma linha e caso ela seja grande
acaba cortando ela. Queria saber se podem me ajudar informando um jeito que eu pudesse implementar a minha JLabel uma quebra
de linha automática de acordo com seu tamanho.
Use HTML. Exemplo:
package guj;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.BorderLayout;
public class ExemploJLabelVariasLinhas extends JFrame {
private JLabel lblesteTexto;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ExemploJLabelVariasLinhas frame = new ExemploJLabelVariasLinhas();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ExemploJLabelVariasLinhas() {
setTitle("Exemplo JLabel com V\u00E1rias Linhas");
setBounds(100, 100, 450, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(getLblesteTexto(), BorderLayout.NORTH);
}
private JLabel getLblesteTexto() {
if (lblesteTexto == null) {
lblesteTexto = new JLabel(
"<html>Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas. Este texto \u00E9 muito comprido e deve ser quebrado em v\u00E1rias linhas.</html>");
}
return lblesteTexto;
}
}
No seu exemplo teria então eu mesmo analisar o tamanho da pergunta e ir adicionando as quebras de linhas?
Pode acrescentar as quebras manuais de linhas com
Eu tinha outra dúvida e para não criar outro tópico será que você sabe se tem jeito de separar uma string pelo index dela?
exemplo:
String nome = "Carlos Henrique";
// quero separar pelo index 9 dessa String e me retornar duas strings
String parte1 = "Carlos Hen";
String parte2 = "rique";
Ou então adicionar um conteúdo a essa String sem precisar separar ela.
exemplo:
String nome = “Carlos Henrique”;
String segundoNome =“Oliveira”;
//quero adicionar o conteúdo da variavel segundoNome onde se encontra o index 9 da String nome
//resultado seria: “Carlos HenOliveirarique”
Você pode criar uma sub-string (ou seja, uma nova string, que é o resultado de você pegar um pedaço de uma string) com o método substring.
Ele é um pouco diferente do MID do VB ou do substr do C++ (STL) ou do substring do C#, então é bom dar uma olhada nos exemplos que você pode achar em qualquer apostila de Java.
Beleza cara, achei aqui o método valeu pelas dicas