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

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.

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:

try
{
// Define layout de acordo com o SO que estiver rodando
UIManager.setLookAndFeel
(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e)
{
}

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.

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!

Muito obrigado pessoal!

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

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

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!

Nunca tive problemas do tipo usando o Matisse.

Sou sortudo d+!!! :lol:

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.

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.

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.