Jtable

eu criei um jTable e ela tá funcionando belezinha…mas oo problemas são…

quando eu vou editar uma linha selecionada como eu retorno o valor de uma combo na tela de cadastro…

e quando ela apresenta os dados as chaves estrageiras ela apresenta um nome que naum é o nome do objeto q eu quero q apareça acho q ela tá me apresentando o código do objeto mas eu quero apresentar o nome do objeto.

Sobreescreva na classe do Objeto o método toString

marcos…vc tem um turorial ae de como chamar um relatório…eles já estaum todos prontos mas eu naum consgigo chamar…so tá faltando isso…

Relatório como? JasperReport?

isso mesmo com jasper report…já baixei a biblioteca e os jar só naum consigo chamar os relatórios…

Então… eu vou postar as classes que eu uso e como faço depois voce adapta.

public void print(int first, int last) {
				StringBuilder sql = new StringBuilder();
				sql.append("SELECT ");
				sql.append("motorista.nome AS motorista_nome,");
				sql.append("veiculo.placa AS veiculo_placa,");
				sql.append("empresa.cnpj AS empresa_cnpj,");
				sql.append("empresa.bairro AS empresa_bairro,");
				sql.append("empresa.cep AS empresa_cep,");
				sql.append("empresa.cidade AS empresa_cidade,");
				sql.append("empresa.endereco AS empresa_endereco,");
				sql.append("empresa.uf AS empresa_uf,");
				sql.append("empresa.ie AS empresa_ie,");
				sql.append("empresa.razaoSocial AS empresa_razaoSocial,");
				sql.append("ordemcoleta.cidade AS ordemcoleta_cidade,");
				sql.append("ordemcoleta.descricao AS ordemcoleta_descricao,");
				sql
						.append("ordemcoleta.destinatario AS ordemcoleta_destinatario,");
				sql.append("ordemcoleta.obs AS ordemcoleta_obs,");
				sql.append("ordemcoleta.peso AS ordemcoleta_peso,");
				sql.append("ordemcoleta.id AS ordemcoleta_id,");
				sql.append("ordemcoleta.quantidade AS ordemcoleta_quantidade,");
				sql.append("ordemcoleta.data AS ordemcoleta_data,");
				sql
						.append("ordemcoleta.localColeta AS ordemcoleta_localColeta,");
				sql.append("ordemcoleta.operante AS ordemcoleta_operante,");
				sql
						.append("ordemcoleta.solicitante AS ordemcoleta_solicitante ");
				sql.append("FROM ");
				sql
						.append("empresa INNER JOIN ordemcoleta ON empresa.id = ordemcoleta.remetente_fk ");
				sql
						.append("INNER JOIN veiculo ON ordemcoleta.veiculo_fk = veiculo.id ");
				sql
						.append("INNER JOIN motorista ON ordemcoleta.motorista_fk = motorista.id");

				try {
					InputStream stream = new FileInputStream(new File(
							"C:/SisGenesis/report/ordemcoleta.jrxml"));

					Report report = new Report(stream);

					report.setSqlQuery(sql.toString());
					report.appendWhere("ordemcoleta.id BETWEEN '" + first
							+ "' AND '" + last + "' ");
					JasperPrint print = report.fill(HibernateUtil.openSession()
							.connection());

					JasperViewer.viewReport(print, false,
							new Locale("pt", "BR"));
				} catch (Exception e) {
					JOptionPane.showMessageDialog(null,
							"Erro ao carregar o relatório.");
					e.printStackTrace();
				}
			}

Class Report

package mark.utils.report;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;

public class Report {
	private String sqlQuery;
	private Map<String, Object> parameters;
	private JasperReport report;

	public Report(InputStream is) throws JRException {
		if (is == null)
			throw new IllegalArgumentException("InputStream can't be null!");
		report = ReportUtils.loadReport(is);
		sqlQuery = "";
		parameters = new HashMap<String, Object>();
	}

	public Report(String fnm) throws IOException, JRException {
		report = ReportUtils.loadReport(fnm);
		sqlQuery = "";
		parameters = new HashMap<String, Object>();
	}

	public void setSqlQuery(String sql) {
		sqlQuery = sql;
	}

	public void appendWhere(String s) {
		sqlQuery += " WHERE " + s;
	}

	public String getSqlQuery() {
		return sqlQuery;
	}

	public void setParamaters(Map<String, Object> params) {
		if (params == null)
			throw new RuntimeException("The parameters cannot be null!");
		parameters = params;
	}

	public void addParamater(String key, Object value) {
		parameters.put(key, value);
	}

	public void addParamaters(Map<String, Object> otherParams) {
		parameters.putAll(otherParams);
	}

	public Map<String, Object> getParamaters() {
		return parameters;
	}

	public JasperReport getReport() {
		return report;
	}

	public JasperPrint fill(Connection conn) throws JRException {
		sqlQuery += ";";
		if (!sqlQuery.equals(";"))
			try {
				return fillSql(conn);
			} catch (SQLException e) {
				throw new JRException(e);
			}
		else
			return fill();
	}

	private JasperPrint fillSql(Connection conn) throws SQLException,
			JRException {
		PreparedStatement stm = conn.prepareStatement(sqlQuery);
		ResultSet rs = stm.executeQuery();
		JRDataSource dataSource = new JRResultSetDataSource(rs);
		JasperPrint print = null;
		print = JasperFillManager.fillReport(report, parameters, dataSource);
		return print;
	}

	private JasperPrint fill() throws JRException {
		JasperPrint print = null;
		print = JasperFillManager.fillReport(report, parameters);
		return print;
	}
}

Class ReportUtils

package mark.utils.report;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;

public class ReportUtils {

	public static JasperPrint fillPrint(String fnm) throws IOException, JRException {
		return fillPrint(fnm, new HashMap<String, Object>());
	}

	public static JasperPrint fillPrint(InputStream is) throws JRException {
		return fillPrint(is, new HashMap<String, Object>());
	}

	public static JasperPrint fillPrint(String fnm, Map<String, Object> parameters)
			throws IOException, JRException {
		return fillPrint(loadReport(fnm), parameters);
	}

	public static JasperPrint fillPrint(InputStream is, Map<String, Object> parameters)
			throws JRException {
		return fillPrint(loadReport(is), parameters);
	}

	public static JasperPrint fillPrint(JasperReport jasperReport,
			Map<String, Object> parameters) throws JRException {
		JasperPrint print = null;
		try {
			print = JasperFillManager.fillReport(jasperReport, parameters);
		} catch (JRException e) {
			throw new JRException(e);
		}
		return print;
	}

	public static JasperReport loadReport(String fnm) throws IOException, JRException {
		File jasperFile = new File(fnm);
		if (jasperFile == null || jasperFile.exists())
			throw new IOException("Error reading Jasper XML file: " + fnm);
		FileInputStream is = new FileInputStream(jasperFile);
		JasperReport report = loadReport(is);
		is.close();
		return report;
	}

	public static JasperReport loadReport(InputStream is) throws JRException {
		JasperReport report = null;
		try {
			report = JasperCompileManager.compileReport(is);
		} catch (JRException e) {
			e.printStackTrace();
			throw new JRException(e);
		}
		return report;
	}
}

Não tive tempo ainda de melhorar elas ma por enquanto funciona.

manda p/ mim tbm como q faz p/ fazer um backup e restore no mysql…

pesquisa no google : mysqldump

//Daniel

Voce fala como se fosse tão fáçil pedir algo e ter :?

Mas eu uso o MySql Administrator para fazer isso.

desculpa ae cara…é q to desesperado tenho de apresentar meu tcc hj…
e falta o relatório e o backup…

Nossa… agora que vi que era voce… hehe não tinha lido seu nick.

Mas então… eu nunca precisei fazer via Java o back-up então eu uso o MySqlGUI tools.

[quote=alexsandersi]desculpa ae cara…é q to desesperado tenho de apresentar meu tcc hj…
e falta o relatório e o backup…
[/quote]

Ah, nao falei por mal… so achei que seria mais facil pra pegar exemplos do que esperar alguem ter tempo pra postar exemplos pra vc. Mas ai vai:

o comando eh mysqldump -u root -p nome_do_banco > backup.txt

Esse comando ira salvar todo o banco de dados num arquivo texto. Ai pra restaurar eh so fazer o contrario:

mysql -u root -p nome_do_banco < backup.txt

fechou. =)

Added : Como o Mark_ameba disse, se vc tiver instalado o mysqlGUI tools, provavelmente tem uma opcao pra fazer o dump por la. Eu nao sei porque eu gosto de fazer as coisas na linha de comando :slight_smile:

//Daniel

eu queria fazer do seguinte modo…tenho uma tela com uma textfiedl par digitar o nome do backup e outro p/ selecionar o caminh0…e um botão para confirmar o bachup…eu naum to comseguindo selecionar o caminho e nem botar o evento no documento.

[quote=windsofhell][quote=alexsandersi]desculpa ae cara…é q to desesperado tenho de apresentar meu tcc hj…
e falta o relatório e o backup…
[/quote]

Ah, nao falei por mal… so achei que seria mais facil pra pegar exemplos do que esperar alguem ter tempo pra postar exemplos pra vc. Mas ai vai:
[/quote]

Acho que isso foi mais por causa disso:

^^

Também prefiro fazer na linha de código mas pro MySql estranhamente eu prefira a GUI.

Marcos eu estou modelando a tabela da seguinte forma

[code]public Object getValueAt(int rowIndex, int columnIndex) {
Cobertura cob = listaCob.get(rowIndex);
switch(columnIndex){
case 0:
return cob.getId();
case 1:
return cob.getDataCob();

    case 2:
        return cob.getAnimal().getNome();
    case 3:
        return cob.getSemen().getNick();
    case 4:
        return cob.getSituacao();
    case 5:
        return cob.getConfirmada();
}
    return null;
}[/code]

e carregando desse jeito… quando abra a janela…

[code].
jTableCoberturas.setModel(tabelaCobertura);
DAO dao = new DAO(Cobertura.class);
dao.setSession(HibernateUtil.openSession());

tabelaCobertura.setCob(dao.getList());

jTableCoberturas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);[/code]

onde eu formato a data p/ aparecer no formato certo na tabela…

eu sei q tem d converter assi…

Date d = GregorianCalendar.getInstance().getTime(); //ou qualquer data =D SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); String s = format.format(d);

mas naum sei onde botar e nem inclmentar…ve ae p/ mim só falta isso…

A maneira mais simples…

public Object getValueAt(int rowIndex, int columnIndex) {   
        Cobertura cob = listaCob.get(rowIndex);   
    switch(columnIndex){   
        case 0:   
            return cob.getId();   
        case 1:{
            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");     
            return format.format(cob.getDataCob().getTime());
               }
        case 2:   
            return cob.getAnimal().getNome();   
        case 3:   
            return cob.getSemen().getNick();   
        case 4:   
            return cob.getSituacao();   
        case 5:   
            return cob.getConfirmada();   
    }   
        return null;   
    }