Resource Editor - LWUIT

Ola a todos,

Gostaria de saber como faço pra carregar minha aplicação no programa Resource Editor para poder editar.

Quando vou em file> open ele pedi um arquivo de extensão .res

ou quando vou em themes e vou adicionar ele já abre o Lwuit demo.

Valeu

Eu to começando no lwuit tambem e nem tenho mta experiencia mas já deu pra eu sakar o seguinte:

1- Voce nao carrega sua aplicação no resource editor, esse editor é pra fazer tipo a capa do programa (skin) não da pra adicionar textbox, labels, etc…
2- Experimenta abrir um .res que fica dentro de alguma pasta do diretorio LwuitDEMO (algo asssim) para ver como funciona as propriedades de cada item.
3- Aquela tela que fica do lado direito não é a demonstração do programa em execução e sim uma forma de selecionar e/ou visualizar os controles como eles ficariam…

Por enquanto é só isso que eu tenho em mente mas nesse fim de semana vou dar mais uma estudada…

Qualquer duvida, respoonda…

JNTHS.

humm.

Entao como poderia fazer capa para meu programa?

Tenho a base do programa pronto.

Ao criar um tema no resource Editor e salvar ele gera um .res como faço pra usar ele no meu código.

valeu

Oi pessoal!

Eu também estou usando lwuit, e estou tendo problemas com os layouts, o único que deu certinho foi o BoxLayout que exibe os componentes em uma linha, porém ocupando a linha toda na tela do celular, tentei o FlowLayout para colocar lado a lado, mas ainda não é bem o que eu quero, eu quero, criei apenas um cadastro de perfil, estou usando somente TextFields e Labels, mas o BoxLayout estica cada um dos componentes para ocupar em uma linha inteira na tela do celular. Não estou conseguindo colocar os TextFields um do lado do outro e gostaria de saber como posso fazer isto sem deixar de usar o BoxLayout. Existe uma maneira de criar mais de um Container na tela do celular, isso facilitaria e muito pra trabalhar com a adição dos componentes e alinhação deles.

:?: :?: :?:

Abração!

Consegui resolver.
A solução é a seguinte:

Para criar um novo tema no LWUIT faça o seguinte:

  1. Inicie o resource editor.

  2. Selecione o menu File/New para criar um arquivo .RES.

  3. Pressione o botão com o símbolo +, informe o tipo “Theme” e dê um nome para o novo tema.

  4. Agora, é só definir os valores das propriedades dos objetos (Buttom, list e etc).

  5. Selecione File/Save para salvar o arquivo.

  6. No MIDLet inclua as duas linhas abaixo para carregar o tema e coloque o arquivo salvo na pasta res do eclipse:

     Resources r = Resources.open("/<nome do arquivo que contém o tema>");
     UIManager.getInstance().setThemeProps(r.getTheme("<nome do tema>"));
    
  7. Pronto! Sua aplicação já está trabalhando com o tema que você acabou de criar.

Lembre-se de utilizar a última versão do LWUIT, até porque a penúltima versão estava cheia de bugs no resource editor.

Uma coisa que eu to achando meio diferente é o List, agora eu tenho que criar um List e um DefaultListModel, mas ainda to na duvida para colocar na lista vários checkbox…

Ola a todos ! Estou com um probleminha quem sabe vcs podem me ajudar.
Ja fiz todo o recomendado e mesmo assim não consigo carregar o tema no lwuit, ja criei o tema no resource editor, copiei o tema criado no resource editor pra pasta res do meu projeto, o LWUIT.jar ja esta na pasta lib, e devidamente configurado no eclipse.

Estou usando o eclipse pulsar galileo sr2
O LWUIT.JAR do LWUIT 1.4

o codigo segue abaixo:

Resources r = Resources.open("res/tema1.res");
	 UIManager.getInstance().
     setThemeProps(r.getTheme("tema1"));

e o codigo so erro segue abaixo:

Running with storage root C:\Users\cassio\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: Portuguese_Brazil.1252
Running in the identified_third_party security domain
java.io.IOException: res/tema1.res not found
	at com.sun.lwuit.util.Resources.open(+41)
	at HelloMidlet.startApp(+9)
	at javax.microedition.midlet.MIDletProxy.startApp(+7)
	at com.sun.midp.midlet.Scheduler.schedule(+270)
	at com.sun.midp.main.Main.runLocalClass(+28)
	at com.sun.midp.main.Main.main(+80)
Execution completed.
3549797 bytecodes executed
1035 thread switches
1747 classes in the system (including system classes)
33888 dynamic objects allocated (1678400 bytes)
142 garbage collections (1558808 bytes collected)

Esse erro é porque o LWUIT não está achando o arquivo .res.

Tenta ir colcoando umas variações do tipo

/Tema.res

…/Tema.res

…/res/Tema.res

/res/Tema.res

Enfim… O erro é provavelmente esse. No meu caso, quando estou fazendo uma aplicação no LWUIT eu coloco o .res no diretorio raiz, e não no /res … dai é só colocar:

res = Resources.open("/Tema2.res");

Espero que ajude…
:idea:

Coloquei na raiz e agora o erro que apontava para a linha: Resources r = Resources.open("/tema1.res");
aponta para 2 linhas abaixo.

segue o codigo:

import com.sun.lwuit.Display;
import com.sun.lwuit.Form;
import com.sun.lwuit.Label;
import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.util.Resources;
public class HelloMidlet extends javax.microedition.midlet.MIDlet {
public void startApp() {
//init the LWUIT Display
Display.init(this);
// Setting the application theme is discussed
// later in the theme chapter and the resources chapter
try {
	 Resources r = Resources.open("/tema1.res");
	 UIManager.getInstance().
     setThemeProps(r.getTheme("tema1"));

} catch (java.io.IOException e) {
	e.printStackTrace();
}
Form f = new Form();
f.setTitle("Hello World");
f.setLayout(new BorderLayout());
f.addComponent("Center", new Label("I am a Label"));
f.show();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Running with storage root C:\Users\cassio\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: Portuguese_Brazil.1252
Running in the identified_third_party security domain
startApp threw an Exception
java.lang.NullPointerException
java.lang.NullPointerException
	at com.sun.lwuit.plaf.UIManager.buildTheme(+1)
	at com.sun.lwuit.plaf.UIManager.setThemePropsImpl(+52)
	at com.sun.lwuit.plaf.UIManager.setThemeProps(+11)
	at HelloMidlet.startApp(+22)
	at javax.microedition.midlet.MIDletProxy.startApp(+7)
	at com.sun.midp.midlet.Scheduler.schedule(+270)
	at com.sun.midp.main.Main.runLocalClass(+28)
	at com.sun.midp.main.Main.main(+80)
Execution completed.
3498778 bytecodes executed
33 thread switches
1740 classes in the system (including system classes)
31958 dynamic objects allocated (1602056 bytes)
131 garbage collections (1494676 bytes collected)

Ao que tudo indica, parece que o erro é no nome do resource dentro do res… saka???

Tipo quando vc cria um tema, tem q colocar um nome nele, tem certeza que é tema1 mesmo ???

E Outra coisa… pra testar tira aquela parte de Form e talz… deixa só o try com o res…

Comigo funciona sem problema assim:

[code]
public Resources res;

public construtor_ou_startApp() {
    
    try {
        res = Resources.open("/Theme.res");
        UIManager.getInstance().setThemeProps(res.getTheme(res.getThemeResourceNames()[0]));
    } catch (IOException ioe) {
        System.out.println("Couldn't load theme.");
    }
}[/code]

Obrigado vou tentar, esse e o nome que eu salvei o arquivo.res

substitui o nome do tema pelo codigo que pega o nome de acordo com o codigo que vc me passou e o errro mudou:


Running with storage root C:\Users\cassio\j2mewtk\2.5.2\appdb\DefaultColorPhone
Running with locale: Portuguese_Brazil.1252
Running in the identified_third_party security domain
startApp threw an Exception
java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException
	at HelloMidlet.startApp(+19)
	at javax.microedition.midlet.MIDletProxy.startApp(+7)
	at com.sun.midp.midlet.Scheduler.schedule(+270)
	at com.sun.midp.main.Main.runLocalClass(+28)
	at com.sun.midp.main.Main.main(+80)
Execution completed.
3454648 bytecodes executed
33 thread switches
1740 classes in the system (including system classes)
31833 dynamic objects allocated (1596456 bytes)
131 garbage collections (1494164 bytes collected)

	
import com.sun.lwuit.Display;
//import com.sun.lwuit.Form;
//import com.sun.lwuit.Label;
//import com.sun.lwuit.layouts.BorderLayout;
import com.sun.lwuit.plaf.UIManager;
import com.sun.lwuit.util.Resources;
public class HelloMidlet extends javax.microedition.midlet.MIDlet {
public void startApp() {
//init the LWUIT Display
Display.init(this);
// Setting the application theme is discussed
// later in the theme chapter and the resources chapter
try {
	 Resources r = Resources.open("/tema1.res");
	 UIManager.getInstance().setThemeProps(r.getTheme(r.getThemeResourceNames()[0]));  
} catch (java.io.IOException e) {
	e.printStackTrace();
}

}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}

Como parece estar tudo certo vou fazer tudo de novo desde o começo em outro pc.

Blz…mas é muito provavel que seja o resource do LWUIT com problema… ArrayIndexOutOfBounds significa que o indice 0 não existe… então seu arquivo .res não tem nenhum tema dentro dele…

Pega aquele tema classico do LWUIT (um laranja) acho que se chama LWUITTheme.res coloca ele no lugar do seu e testa…

Ok vou tentar

Ta dando umas mensagem do jdk cada vez mais frequente .Acho que eu vou tentar andar um pouco com o projeto usando o netbeans, tava usando ele mas começou a dar uns pau no display ai mudei pro eclipse. obrigado mesmo assim pela ajuda e atenção boa sorte.

Então um outro projeto que tem pronto na net sobre lwuit roda bonito. deve ser alguma configuração do projeto

usei um tema ja pronto e nada

agora não da erro mas tambem não carrrega…

Descobri valeu velho, apesar que vc deixou eu sofrer um pouquinho rs, mas pelo menos eu não estava sozinho,

Então o problema era o seguinte vc mandou eu por o tema na raiz certo ?
e onde é a raiz ?
foi o que eu descobri
a raiz e a pasta src
ai coloca se o tema na pasta src
e o codigo fica assim :

Resources r = Resources.open("/theme.res"); UIManager.getInstance().setThemeProps(r.getTheme( r.getThemeResourceNames()[0]) );

[size=12][size=18]Olá Galera,

Lendo o tópico vou contribuir com algumas dicas que fui descobrindo , lendo também o tutorial que vem com o LWUIT:

  • Sobre o Res, o local ideal para o arquivo é dentro do diretório src (estou com a NetBeans)
  • Para fazer um res de imagens, você deve configurar o build.xml (mas não indico fazer isso, pois ocupa memória) [/size][/size]

Mais dicas aqui, no meu blog : http://fmmobile.blogspot.com/2010/10/java-interface-lwuit.html#links

Valew