SWT e JFace

6 respostas
R

Galera to eu aqui dinovo.
To procurando na net mais tá dificil
O SWT sem JFace fica meio trabalhoso, mas com o JFace eu num consigo nem roda uma telinha de teste.
sem o JFace.
Tá dando o seguinte erro.
Eu inclui o seguintes jar
eclipse-jface-2.1.0
swt

import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;

public class TesteGui extends ApplicationWindow {
	private static  int selecoes = 0;
	public TesteGui(){
		super(null);
	}
	
	protected Control createContents(Composite parent){
		parent.setLayout(new RowLayout());
		Button button = new Button(parent,SWT.PUSH);
		button.setText("Clique Aqui Agora");
		
		button.addSelectionListener(new SelectionAdapter() {
		   
			public void widgetSelected(SelectionEvent event){
				Button buttonClicked = 	(Button) event.getSource();
				selecoes += 1;
				buttonClicked.setText(String.format("Fui Cliclado %s vezes",selecoes));
			}
		});
	   return parent;	
	};
	
	public static void main(String[] args){
		ApplicationWindow window = new TesteGui();
		window.setBlockOnOpen(true);
		window.open();
		Display.getDefault().dispose();
	}
}
java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.IProgressMonitor
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Exception in thread "main"

alguém sabe oque eu to fazendo de errado

6 Respostas

S

Ele não está achando: org.eclipse.core.runtime.IProgressMonitor

R

Você precisa de todos os jars envolvidos no classpath. Uma idéia é usar os próprios jars do Eclipse se você puder, por exemplo transformar o seu projeto em plugin e adicionar o org.eclipse.jface como dependência.

R

Mas o jar do Jface e do SWT está no path
Arquivos de programas/Java/jdk/jre/lib/ext/
pelo menos com os jar do jdbc dá oracle e do Mysql estando neste local funcionou
Meu eclipse é o Galileo, eu já vi sobre esse negócio de plugin, mas na versão do meu eclipse, num to conseguindo fazer

R

Não é apenas um jar. No Galileo, clica com o botão direito no projeto, Configure > Convert to Plugin Projects.

D

Não sei se tem muita diferença do eclipse 3 para o galileo mas com os jars do proprio eclipse é possível configurar para rodar o jface. Dá uma olhada no livro Swt-Jface In Action Gui Design With Eclipse 3.0 na página 311 que lá tem o passo-a-passo da configuração. É configurar e programar. Não tem erro.

R

Bem Galera Consegui Resolver o problema.
Para quem baixou os jar que nem eu, pode fazer o seguinte.
Testado no Eclipse Galileo.
Você cria o Projeto, clica nele com o Botao Direiro.
Properties->Java Buid Path -> add Library ->selecione User Library ->Vai ser listados as Librarys do usuário se estiver vazio
clique em User Libraries->New->De Um Nome a sua Library “o Nome não influencia em nada” selecione a caixa “System Library(added to the boot class path)” .
Ai clique em add Jar.
selecione o jar desejado e pronto.
Recomendo reiniciar o Eclipse.
Assim dá para programar, num sei num caso de distribuição do aplicativo final se vai junto.
Mas ai é outro caso.Isso resolveu meu problema.
valeu galera brigadão pela ajuda ai.

Criado 9 de agosto de 2009
Ultima resposta 12 de ago. de 2009
Respostas 6
Participantes 4