Interface gráfica Swing (padrão) no Windows vs. Linux

12 respostas
M

Olá pessoal.
Estou desenvolvendo algumas telas em swing no Netbeans 5.5.1 no Windows XP de um pequeno sistema de controle jurídico para desktop. Minha intenção é implementá-lo para que seja utilizado tanto em linux e windows sem (significativas) alterações no código fonte.
Sendo assim, fiz alguns testes: após o término das interfaces eu peguei o meu projeto Java e copiei para um sistema com o Linux Ubuntu 7.04. Alguns botões não mostravam mais a legenda (ficavam com reticências). Cores foram trocadas (por exemplo: a linha envolta do painel qdo configurado para titled border) e mais outras pequenas discrepâncias.
Alguém já passou por isso? Como faço para compatibilizar totalmente as interfaces ? É possível realmente ou tenho que alterar a versão do linux - no caso modificando algumas fontes e cores.
Muito obrigado a todos.

12 Respostas

marcos.junqueira

Eu recomendo que vc utilize o Look and feel padrão do java (Metal). Eu acho esse laf muito bonito, ao contrário de muita gente por ai… :lol:

Alternativamente vc pode detectar qual o SO e definir o LAF em tempo de execução, se tiver rodando Win, coloca o laf do win, se tiver rodando linux, coloca o laf do linux.

Agora esse problema seu ai eu nunca vi, eu tenho o windows xp e o ubuntu 7.04 na minha máquina e meus programas swing consigo rodar normalmente.

Dica: quando vc usa o laf Metal no NetBeans ao invés do padrão, ele fica ligeiramente mais rápido. :wink:

B
try

{

// Define layout de acordo com o SO que estiver rodando

UIManager.setLookAndFeel

(UIManager.getSystemLookAndFeelClassName());

}

catch (Exception e)

{

}
brothermclaud

Olá mfjeng,
Tive um problema parecido com o programa que estava fazendo e que testei nas duas plataformas.
Mas eu estava usando o UIManager.setLookAndFeel(UIManager.getSystemLoonAndFeel);. Resolvi acertando o layout pelo Linux (uso o Kurumin 7) de modo que pudesse ver tudo certinho. Quando voltei para o Windows, tudo estava ok, os botões ficaram maiores apenas em alguns pixels.

P.S.: existe uma forma melhor de vc trabalhar nos dois sistemas sem ter que estar copiando o projeto de um para o outro. Eu configurei o CVS dos dois sistemas para atualizarem um mesmo repostório em uma partição Windows.

lina

Oi,
amigo, acho que não seria um problema com o LAF…
e sim com Layout…

Os formatos em layout’s nullos não funcionaum iguais aos S.O’s windows e Linux…

Para suas telas então, sugiro não trabalhar com o Layout null, se não… você vai ter que modifca-las ao passar para o linux.

e outra coisa, cores e letras… o Linux principalmente o Ubuntu, geralmente a maneira que ele identifica a pontuação é diferente… caso um botão seu tenha ´`~^ é bem provavel que se o ambiente não estiver configurado corretamente para este formato, a letrinha que possui estes simbulos ira desaparecer! e seu botão poderá ficar: Botão -> Boto ou Bot.o

Tchauzin!

M

Muito obrigado pessoal!

caxxias

coma a “lina” comentou o layout interfere sim de acordo com o SO
mas apenas nas bordas elas fica mais “grossas” de acordo com o stilo
do linux por exemplo , mas nada que mude drasticamente a aparência do programa.

aconselho a não ficar perdendo tempo em cores e bordas
mas sim numa interface mais padrão e funcional ^^

M

caxxias não estou perdendo em bordas e cores, foi só uma questão. Valeu…

lina

Poisé,
não é somente bordas não,
eu tive essa experiencia… programava em windows e quando ia passar pra linux (que no meu caso, uso Ubuntu desde sempre hehe) ficava estranhas…

e realmente, é o Layout null das telas que eu utilizava.

Tchauzin!

marcos.junqueira

Nunca tive problemas do tipo usando o Matisse.

Sou sortudo d+!!! :lol:

brothermclaud

Pois é, como o Marcos disse, o Matisse não dá problema algum. O que muda do Linux para o Windows é o L&F do sistema que torna as letras maiores ou menores, o que pode prejudicar a visualização das Strings nos JButtons ou JLabels da vida.

T

As fontes comuns do Windows (Arial, Tahoma, Courier New etc.) não existem com esse nome no Linux, e serão substituídas por fontes parecidas mas com algumas propriedades diferentes.

Se você quiser “forçar a barra”, desenvolva seu programa no Linux usando algumas fontes (como Luxi Mono, Luxi Sans) e quando rodar seu programa no Windows instale essas fontes que costumam vir com o Linux.

keller

So pode, ou entao voce faz telinhas simples demais.

Utilizamos o netbeans acreditando no poder do matisse por 1semana quando pintou uma telinha mais complexa o netbeans decepcionou.

Agora estamos utilizando um plugin chamado JIGLOO para o eclipse.
E o projeto volta a um bom ritmo de producao.

Criado 28 de junho de 2007
Ultima resposta 3 de jul. de 2007
Respostas 12
Participantes 8