Jump to content
Nuno_Martins

Ajuda na concepção de um editor de texto

Recommended Posts

Nuno_Martins

Olá,

Decidi começar a fazer um editor de texto com algumas funcionalidades que me vão dando na cabeça  B) Para me divertir e ir exercitando a programação  ;)

Estou com uma dúvida no que diz respeito mais à estruturação do programa.

Basicamente na aplicação vou ter um JMenuBar com vários menus, logo abaixo vou ter uma barra de ferramentas, com botões para algumas funcionalidades.

No centro da JFrame vou ter a área para editar o texto onde vou ter algo do tipo JEditorPane (confesso que nunca usei componentes para texto, por isso ainda ando a pesquisar).

A minha dúvida em concreto: Devo ter um painel que contêm um JEditorPane(ou outro) e depois coloco o painel na frame, ou simplesmente coloco o JEditorPanel directamente na frame? Qual acham ser a melhor escolha?

Depois certamente que vão surgir mais dúvidas, queria fazer um dicionário, em que conforme escreve uma palavra ele indica se a conhece ou não, e mais tarde, adicionar funcionalidade de sugerir correcções (à lá word  :D ).

Cumprimentos e obrigado desde já.

Share this post


Link to post
Share on other sites
Knitter

O formato mais simples será definires o layout da JFrame (atenção que a JFrame tem sempre um componente na raiz e é nesse que se trabalha) de modo a usares um BorderLayout. Na secção norte do layout colocas a barra de ferramentas, na secção centro colocas a área de texto, na secção sul uma barra de estado se tiveres alguma.

Quanto a ter ou não um JPanel, não creio que será necessário. Se fizeres a interface à mão vais ter de colocar o JEditorPane dentro de um JScrollPane para teres barras de deslocamento, o editor só por si não tem. Se estiveres a usar o NetBeans IDE para desenhar a interface, ao arrastares o JEditorPane para o centro da JFrame é logo colocado o JScrollPane por ti.

Ter mais um painel por baixo poderia ser útil se quiseres adicionar coisas ao lado da área de texto, como a área vai ocupar o centro todo não há necessidade de mais um componente.

JEditorPane ou JTextPane são componentes que permitem texto com estilos, JTextArea permite apenas texto. Se queres um dicionário vais ter de usar estilos para poderes aplicar as típicas linhas vermelhas, ícones, etc. São relativamente simples de utilizar, mas talvez não fosse má ideia usares um JTextPane em vez de um JEditorPane.

Share this post


Link to post
Share on other sites
Nuno_Martins

O formato mais simples será definires o layout da JFrame (atenção que a JFrame tem sempre um componente na raiz e é nesse que se trabalha) de modo a usares um BorderLayout. Na secção norte do layout colocas a barra de ferramentas, na secção centro colocas a área de texto, na secção sul uma barra de estado se tiveres alguma.

Estou a fazer exactamente como mencionas-te  B)

Quanto a ter ou não um JPanel, não creio que será necessário. Se fizeres a interface à mão vais ter de colocar o JEditorPane dentro de um JScrollPane para teres barras de deslocamento, o editor só por si não tem. Se estiveres a usar o NetBeans IDE para desenhar a interface, ao arrastares o JEditorPane para o centro da JFrame é logo colocado o JScrollPane por ti.

Por acaso ainda não me tinha lembrado da questão das barras de deslocamento, mas vou colocar. Estou a usar o eclipse, gosto mais de fazer através de código  B)

Ter mais um painel por baixo poderia ser útil se quiseres adicionar coisas ao lado da área de texto, como a área vai ocupar o centro todo não há necessidade de mais um componente.

Por acaso pretendo adicionar uma barra que vai mostrar o número das linhas, mas tinha mais pensado em colocar isso na JFrame, usando o BorderLayout, no lado esquerdo, talvez através de um JPanel.

JEditorPane ou JTextPane são componentes que permitem texto com estilos, JTextArea permite apenas texto. Se queres um dicionário vais ter de usar estilos para poderes aplicar as típicas linhas vermelhas, ícones, etc. São relativamente simples de utilizar, mas talvez não fosse má ideia usares um JTextPane em vez de um JEditorPane.

Exacto por causa do dicionário vai ter de ser algum desses dois então. E também porque queria adicionar funcionalidade de alterar o tipo de letra e definir cores, etc. Vou então ver as caracteristicas do JTextPane e do JEditorPane porque sinceramente não percebo nada nem de um nem do outro  :D

Obrigado pela ajuda  ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.