SWT x EU --> variavel

2 respostas
pgoncalves

Bom dia galera!!!

estou iniciando em java agora, e pra estudar estou montando uma agenda pessoal em java/swt , com o visual editor do eclipse.

gostaria que me ajudassem num problema, mais que ainda não resolvi…

estou criando um botão, na toolbar assim:

e tipo essa variável btExcluir somente funciona dentro dessa função, quando coloco dentro de um listener da tabela, pra quando a pessoa clicar em cima da tabela ela habilitar o o botão.

quando uso ela assim:

esse código ai acima está dentro de outra função , inicializada assim:

Me desculpe a extenção do tópico, mas já tentei de tudo e não consegui. Obrigado!

package com.Agenda;

import java.sql.SQLException;

import org.eclipse.swt.graphics.Point;

import org.eclipse.swt.widgets.MessageBox;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Menu;

import org.eclipse.swt.SWT;

import org.eclipse.swt.widgets.MenuItem;

import org.eclipse.swt.widgets.ToolBar;

import org.eclipse.swt.widgets.ToolItem;

import org.eclipse.swt.graphics.Image;

import org.eclipse.swt.custom.CTabFolder;

import org.eclipse.swt.widgets.Table;

import org.eclipse.swt.custom.CTabItem;

import org.eclipse.swt.widgets.Composite;

import org.eclipse.swt.widgets.Label;

import org.eclipse.swt.widgets.Text;

import com.mysql.jdbc.ResultSet;
import com.sun.corba.se.impl.encoding.CodeSetConversion.BTCConverter;

public class Agenda {

private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="10,10"
private Menu menuBar = null;
private Menu submenu = null;
private Menu submenu1 = null;
private ToolBar toolBar = null;
private Tabela tabela;
private CTabFolder cTabFolder = null;
private Table Agenda = null;
private Composite Dados = null;
private Label lNome = null;
private Label lEndereco = null;
private Label lBairro = null;
private Label lEstado = null;
private Label lCep = null;
private Label lTelefone = null;
private Label lCidade = null;
private Text tNome = null;
private Text tEndereco = null;
private Text tBairro = null;
private Text tEstado = null;
private Text tCep = null;
private Text tTelefone = null;
private Text tCidade = null;
private Conexao conexao;
private ResultSet rs;

public Agenda() {
	super();
	// TODO Auto-generated constructor stub
}

/**
 * This method initializes toolBar	
 *
 */
private void createToolBar() {
	toolBar = new ToolBar(sShell, SWT.NONE);
	toolBar.setBounds(new org.eclipse.swt.graphics.Rectangle(0,-2,478,24));
	ToolItem btSalvar = new ToolItem(toolBar, SWT.PUSH);
	btSalvar.setToolTipText("Salvar");
	btSalvar.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/save.gif")));
	ToolItem btNovo = new ToolItem(toolBar, SWT.PUSH);
	btNovo.setToolTipText("Novo");
	btNovo.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/new.gif")));
	ToolItem toolItem = new ToolItem(toolBar, SWT.SEPARATOR);
	ToolItem btExcluir = new ToolItem(toolBar, SWT.PUSH);
	btExcluir.setToolTipText("Excluir");
	btExcluir.setDisabledImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/delete_des.gif")));
	btExcluir.setEnabled(false);
	btExcluir.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/delete.gif")));
}


/**
 * This method initializes cTabFolder	
 *
 */
private void createCTabFolder() {
	cTabFolder = new CTabFolder(sShell, SWT.BORDER);
	cTabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT));
	cTabFolder.setSelectionForeground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
	cTabFolder.setTabHeight(20);
	cTabFolder.setSimple(true);
	createTable();
	createComposite();
	cTabFolder.setBounds(new org.eclipse.swt.graphics.Rectangle(5,27,474,176));
	CTabItem cTabItem = new CTabItem(cTabFolder, SWT.NULL);
	cTabItem.setText("Agenda");
	cTabItem.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/agenda.gif")));
	cTabItem.setControl(Agenda);
	CTabItem cTabItem1 = new CTabItem(cTabFolder, SWT.NULL);
	cTabItem1.setText("Dados");
	cTabItem1.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/dados.gif")));
	cTabItem1.setControl(Dados);
}

/**
 * This method initializes table	
 *
 */
private void createTable() {
	Agenda = new Table(cTabFolder, SWT.BORDER | SWT.FULL_SELECTION);
	Agenda.setHeaderVisible(true);
	Agenda.setLinesVisible(false);
	
	String driver="org.gjt.mm.mysql.Driver";
	String url="jdbc:mysql://192.168.254.254/agenda";
	String user = "java";
	String password = "123456";
	String query="SELECT Registro,Nome,Telefone FROM registros";
	
	try {
		tabela = new Tabela(driver,url,user,password,query, Agenda);
		conexao = new Conexao();
		conexao.setConnection(url,user,password,driver);
	}
	catch (ClassNotFoundException ce) {
		MessageBox dialog = new MessageBox(sShell, SWT.ICON_ERROR);
		dialog.setText("Erro Encontrado");
		dialog.setMessage("Driver não encontrado");
		dialog.open();
	}
	catch (SQLException sqlex) {
		MessageBox dialog = new MessageBox(sShell, SWT.ICON_ERROR);
		dialog.setText("Erro Encontrado");
		dialog.setMessage("Erro na SQL");
		dialog.open();
	}
	
	Agenda.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
		public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
			btExcluir.setEnabled(true);
						
		}
	});
	Agenda.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
		public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e) {
			System.out.println("mouseDoubleClick()"); // TODO Auto-generated Event stub mouseDoubleClick()
		}
	});
	
	
	
}

/**
 * This method initializes composite	
 *
 */
private void createComposite() {
	Dados = new Composite(cTabFolder, SWT.NONE);
	lNome = new Label(Dados, SWT.NONE);
	lNome.setBounds(new org.eclipse.swt.graphics.Rectangle(30,21,33,13));
	lNome.setText("Nome:");
	lEndereco = new Label(Dados, SWT.NONE);
	lEndereco.setBounds(new org.eclipse.swt.graphics.Rectangle(12,50,50,13));
	lEndereco.setText("Endereço:");
	lBairro = new Label(Dados, SWT.NONE);
	lBairro.setBounds(new org.eclipse.swt.graphics.Rectangle(28,79,34,13));
	lBairro.setText("Bairro:");
	lEstado = new Label(Dados, SWT.NONE);
	lEstado.setBounds(new org.eclipse.swt.graphics.Rectangle(23,109,39,13));
	lEstado.setText("Estado:");
	lCep = new Label(Dados, SWT.NONE);
	lCep.setBounds(new org.eclipse.swt.graphics.Rectangle(143,110,25,13));
	lCep.setText("CEP:");
	lTelefone = new Label(Dados, SWT.NONE);
	lTelefone.setBounds(new org.eclipse.swt.graphics.Rectangle(293,110,48,13));
	lTelefone.setText("Telefone:");
	lCidade = new Label(Dados, SWT.NONE);
	lCidade.setBounds(new org.eclipse.swt.graphics.Rectangle(303,79,38,13));
	lCidade.setText("Cidade:");
	tNome = new Text(Dados, SWT.BORDER);
	tNome.setBounds(new org.eclipse.swt.graphics.Rectangle(67,19,384,19));
	tEndereco = new Text(Dados, SWT.BORDER);
	tEndereco.setBounds(new org.eclipse.swt.graphics.Rectangle(68,47,382,19));
	tBairro = new Text(Dados, SWT.BORDER);
	tBairro.setBounds(new org.eclipse.swt.graphics.Rectangle(68,77,218,19));
	tEstado = new Text(Dados, SWT.BORDER);
	tEstado.setBounds(new org.eclipse.swt.graphics.Rectangle(68,107,66,19));
	tCep = new Text(Dados, SWT.BORDER);
	tCep.setBounds(new org.eclipse.swt.graphics.Rectangle(170,107,117,19));
	tTelefone = new Text(Dados, SWT.BORDER);
	tTelefone.setBounds(new org.eclipse.swt.graphics.Rectangle(342,107,109,19));
	tCidade = new Text(Dados, SWT.BORDER);
	tCidade.setBounds(new org.eclipse.swt.graphics.Rectangle(341,77,109,19));
}

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	/* Before this is run, be sure to set up the launch configuration (Arguments->VM Arguments)
	 * for the correct SWT library path in order to run with the SWT dlls. 
	 * The dlls are located in the SWT plugin jar.  
	 * For example, on Windows the Eclipse SWT 3.1 plugin jar is:
	 *       installation_directory\plugins\org.eclipse.swt.win32_3.1.0.jar
	 */
	Display display = Display.getDefault();
	Agenda thisClass = new Agenda();
	thisClass.createSShell();
	thisClass.sShell.open();

	while (!thisClass.sShell.isDisposed()) {
		if (!display.readAndDispatch())
			display.sleep();
	}
	display.dispose();
}

/**
 * This method initializes sShell
 */
private void createSShell() {
	sShell = new Shell();
	sShell.setText("iAgenda");
	sShell.setMaximized(false);
	createToolBar();
	createCTabFolder();
	sShell.setSize(new org.eclipse.swt.graphics.Point(492,257));
	menuBar = new Menu(sShell, SWT.BAR);
	MenuItem submenuItem = new MenuItem(menuBar, SWT.CASCADE);
	submenuItem.setText("&Arquivo");
	MenuItem submenuItem1 = new MenuItem(menuBar, SWT.CASCADE);
	submenuItem1.setText("A&juda");
	submenu1 = new Menu(submenuItem1);
	MenuItem mSobre = new MenuItem(submenu1, SWT.PUSH);
	mSobre.setText("Sobre");
	submenuItem1.setMenu(submenu1);
	submenu = new Menu(submenuItem);
	MenuItem mNovo = new MenuItem(submenu, SWT.PUSH);
	mNovo.setText("Novo\tCtrl+N");
	mNovo.setAccelerator(SWT.CONTROL | 'n');
	MenuItem mSalvar = new MenuItem(submenu, SWT.PUSH);
	mSalvar.setText("Salvar\tCtrl+S");
	mSalvar.setAccelerator(SWT.CONTROL | 's');
	MenuItem separator = new MenuItem(submenu, SWT.SEPARATOR);
	MenuItem mSair = new MenuItem(submenu, SWT.PUSH);
	mSair.setText("Sair");
	submenuItem.setMenu(submenu);
	sShell.setMenuBar(menuBar);
}

}

2 Respostas

pgoncalves

Resolvi o problema la…

agora apareceu um mais cabuloso ainda… quando eu clico no item da tabela… ele encerra a execução e aparece as seguintes mensagens no debug…

<blockquote>Exception in thread “main” java.lang.NullPointerException

at com.Agenda.Agenda$1.widgetSelected(Agenda.java:139)

at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)

at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)

at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)

at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3080)

at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2713)

at com.Agenda.Agenda.main(Agenda.java:215)</blockquote>

o código atual:

package com.Agenda;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;
import org.eclipse.swt.widgets.MessageBox;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Menu;

import org.eclipse.swt.SWT;

import org.eclipse.swt.widgets.MenuItem;

import org.eclipse.swt.widgets.ToolBar;

import org.eclipse.swt.widgets.ToolItem;

import org.eclipse.swt.graphics.Image;

import org.eclipse.swt.custom.CTabFolder;

import org.eclipse.swt.widgets.Table;

import org.eclipse.swt.custom.CTabItem;

import org.eclipse.swt.widgets.Composite;

import org.eclipse.swt.widgets.Label;

import org.eclipse.swt.widgets.Text;

public class Agenda {

private Shell sShell = null;  //  @jve:decl-index=0:visual-constraint="10,10"
private Menu menuBar = null;
private Menu submenu = null;
private Menu submenu1 = null;
private ToolBar toolBar = null;
private Tabela tabela;
private CTabFolder cTabFolder = null;
private Table Agenda = null;
private Composite Dados = null;
private Label lNome = null;
private Label lEndereco = null;
private Label lBairro = null;
private Label lEstado = null;
private Label lCep = null;
private Label lTelefone = null;
private Label lCidade = null;
private Text tNome = null;
private Text tEndereco = null;
private Text tBairro = null;
private Text tEstado = null;
private Text tCep = null;
private Text tTelefone = null;
private Text tCidade = null;
private ToolItem btExcluir = null;
private Conexao conexao;
private ResultSet rs;

public Agenda() {
	super();
	// TODO Auto-generated constructor stub
}

/**
 * This method initializes toolBar	
 *
 */
private void createToolBar() {
	toolBar = new ToolBar(sShell, SWT.NONE);
	toolBar.setBounds(new org.eclipse.swt.graphics.Rectangle(0,-2,478,24));
	ToolItem btSalvar = new ToolItem(toolBar, SWT.PUSH);
	btSalvar.setToolTipText("Salvar");
	btSalvar.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/save.gif")));
	ToolItem btNovo = new ToolItem(toolBar, SWT.PUSH);
	btNovo.setToolTipText("Novo");
	btNovo.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/new.gif")));
	ToolItem toolItem = new ToolItem(toolBar, SWT.SEPARATOR);
	ToolItem btExcluir = new ToolItem(toolBar, SWT.PUSH);
	btExcluir.setToolTipText("Excluir");
	btExcluir.setDisabledImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/delete_des.gif")));
	btExcluir.setEnabled(false);
	btExcluir.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/delete.gif")));
}


/**
 * This method initializes cTabFolder	
 *
 */
private void createCTabFolder() {
	cTabFolder = new CTabFolder(sShell, SWT.BORDER);
	cTabFolder.setSelectionBackground(Display.getCurrent().getSystemColor(SWT.COLOR_TITLE_BACKGROUND_GRADIENT));
	cTabFolder.setSelectionForeground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE));
	cTabFolder.setTabHeight(20);
	cTabFolder.setSimple(true);
	createTable();
	createComposite();
	cTabFolder.setBounds(new org.eclipse.swt.graphics.Rectangle(5,27,474,176));
	CTabItem cTabItem = new CTabItem(cTabFolder, SWT.NULL);
	cTabItem.setText("Agenda");
	cTabItem.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/agenda.gif")));
	cTabItem.setControl(Agenda);
	CTabItem cTabItem1 = new CTabItem(cTabFolder, SWT.NULL);
	cTabItem1.setText("Dados");
	cTabItem1.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/com/Agenda/imagens/dados.gif")));
	cTabItem1.setControl(Dados);
}

/**
 * This method initializes table	
 *
 */
private void createTable() {
	Agenda = new Table(cTabFolder, SWT.BORDER | SWT.FULL_SELECTION);
	Agenda.setHeaderVisible(true);
	Agenda.setLinesVisible(false);
	
	String driver="org.gjt.mm.mysql.Driver";
	String url="jdbc:mysql://192.168.254.254/agenda";
	String user = "java";
	String password = "123456";
	String query="SELECT Registro,Nome,Telefone FROM registros";
	
	try {
		tabela = new Tabela(driver,url,user,password,query, Agenda);
		conexao = new Conexao();
		conexao.setConnection(url,user,password,driver);
	}
	catch (ClassNotFoundException ce) {
		MessageBox dialog = new MessageBox(sShell, SWT.ICON_ERROR);
		dialog.setText("Erro Encontrado");
		dialog.setMessage("Driver não encontrado");
		dialog.open();
	}
	catch (SQLException sqlex) {
		MessageBox dialog = new MessageBox(sShell, SWT.ICON_ERROR);
		dialog.setText("Erro Encontrado");
		dialog.setMessage("Erro na SQL");
		dialog.open();
	}
	
	Agenda.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
		public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
			btExcluir.setEnabled(true);
			//String SQL = "SELECT * FROM registros WHERE registro="+tabela.getValueAt();
			//rs=conexao.setExeQuery(SQL);
						
		}
	});
	Agenda.addMouseListener(new org.eclipse.swt.events.MouseAdapter() {
		public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e) {
			System.out.println("mouseDoubleClick()"); // TODO Auto-generated Event stub mouseDoubleClick()
		}
	});
	
	
	
}

/**
 * This method initializes composite	
 *
 */
private void createComposite() {
	Dados = new Composite(cTabFolder, SWT.NONE);
	lNome = new Label(Dados, SWT.NONE);
	lNome.setBounds(new org.eclipse.swt.graphics.Rectangle(30,21,33,13));
	lNome.setText("Nome:");
	lEndereco = new Label(Dados, SWT.NONE);
	lEndereco.setBounds(new org.eclipse.swt.graphics.Rectangle(12,50,50,13));
	lEndereco.setText("Endereço:");
	lBairro = new Label(Dados, SWT.NONE);
	lBairro.setBounds(new org.eclipse.swt.graphics.Rectangle(28,79,34,13));
	lBairro.setText("Bairro:");
	lEstado = new Label(Dados, SWT.NONE);
	lEstado.setBounds(new org.eclipse.swt.graphics.Rectangle(23,109,39,13));
	lEstado.setText("Estado:");
	lCep = new Label(Dados, SWT.NONE);
	lCep.setBounds(new org.eclipse.swt.graphics.Rectangle(143,110,25,13));
	lCep.setText("CEP:");
	lTelefone = new Label(Dados, SWT.NONE);
	lTelefone.setBounds(new org.eclipse.swt.graphics.Rectangle(293,110,48,13));
	lTelefone.setText("Telefone:");
	lCidade = new Label(Dados, SWT.NONE);
	lCidade.setBounds(new org.eclipse.swt.graphics.Rectangle(303,79,38,13));
	lCidade.setText("Cidade:");
	tNome = new Text(Dados, SWT.BORDER);
	tNome.setBounds(new org.eclipse.swt.graphics.Rectangle(67,19,384,19));
	tEndereco = new Text(Dados, SWT.BORDER);
	tEndereco.setBounds(new org.eclipse.swt.graphics.Rectangle(68,47,382,19));
	tBairro = new Text(Dados, SWT.BORDER);
	tBairro.setBounds(new org.eclipse.swt.graphics.Rectangle(68,77,218,19));
	tEstado = new Text(Dados, SWT.BORDER);
	tEstado.setBounds(new org.eclipse.swt.graphics.Rectangle(68,107,66,19));
	tCep = new Text(Dados, SWT.BORDER);
	tCep.setBounds(new org.eclipse.swt.graphics.Rectangle(170,107,117,19));
	tTelefone = new Text(Dados, SWT.BORDER);
	tTelefone.setBounds(new org.eclipse.swt.graphics.Rectangle(342,107,109,19));
	tCidade = new Text(Dados, SWT.BORDER);
	tCidade.setBounds(new org.eclipse.swt.graphics.Rectangle(341,77,109,19));
}

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	/* Before this is run, be sure to set up the launch configuration (Arguments->VM Arguments)
	 * for the correct SWT library path in order to run with the SWT dlls. 
	 * The dlls are located in the SWT plugin jar.  
	 * For example, on Windows the Eclipse SWT 3.1 plugin jar is:
	 *       installation_directory\plugins\org.eclipse.swt.win32_3.1.0.jar
	 */
	Display display = Display.getDefault();
	Agenda thisClass = new Agenda();
	thisClass.createSShell();
	thisClass.sShell.open();

	while (!thisClass.sShell.isDisposed()) {
		if (!display.readAndDispatch())
			display.sleep();
	}
	display.dispose();
}

/**
 * This method initializes sShell
 */
private void createSShell() {
	sShell = new Shell();
	sShell.setText("iAgenda");
	sShell.setMaximized(false);
	createToolBar();
	createCTabFolder();
	sShell.setSize(new org.eclipse.swt.graphics.Point(492,257));
	menuBar = new Menu(sShell, SWT.BAR);
	MenuItem submenuItem = new MenuItem(menuBar, SWT.CASCADE);
	submenuItem.setText("&Arquivo");
	MenuItem submenuItem1 = new MenuItem(menuBar, SWT.CASCADE);
	submenuItem1.setText("A&juda");
	submenu1 = new Menu(submenuItem1);
	MenuItem mSobre = new MenuItem(submenu1, SWT.PUSH);
	mSobre.setText("Sobre");
	submenuItem1.setMenu(submenu1);
	submenu = new Menu(submenuItem);
	MenuItem mNovo = new MenuItem(submenu, SWT.PUSH);
	mNovo.setText("Novo\tCtrl+N");
	mNovo.setAccelerator(SWT.CONTROL | 'n');
	MenuItem mSalvar = new MenuItem(submenu, SWT.PUSH);
	mSalvar.setText("Salvar\tCtrl+S");
	mSalvar.setAccelerator(SWT.CONTROL | 's');
	MenuItem separator = new MenuItem(submenu, SWT.SEPARATOR);
	MenuItem mSair = new MenuItem(submenu, SWT.PUSH);
	mSair.setText("Sair");
	submenuItem.setMenu(submenu);
	sShell.setMenuBar(menuBar);
}

}

Obrigado!

keller
Exception in thread "main" java.lang.NullPointerException
at com.Agenda.Agenda$1.widgetSelected(Agenda.java:139)

Alguma variavel na linha 139 esta null.
Use o debug e confira.

Valeu? Até… :thumbup:
[s]

Criado 17 de abril de 2006
Ultima resposta 17 de abr. de 2006
Respostas 2
Participantes 2