Fechar um arquivo java

12 respostas
brunajeniferf

Oi estou com um problema no seguinte, eu mostro uma tabela no meu programa, e quando eu abro outra tabela ela fica em cima da anterior e quando vou clicar nela aparece apenas a anterior, então gostaria de saber como eu faço pra fechar essa tabela anterior, eu pensei em um botao chamado sair, ou até mesmo no botão aonde abre a tabela, alguem pode me ajudar mostrando o comando que faria isso.

muito obrigada

12 Respostas

Rafael_Costa_Teixeir

brunajeniferf ,

Boa tarde !

Remova a sua tabela do Panel.

Exemplo:

seuJPanel.remove( suaJTable );

Não sei se é essa a sua duvida , se não poderia postar seu codigo ?

brunajeniferf

Não deu certo

meu codigo é

package br.ufpr;

import com.svcon.jdbf.DBFReader;
import com.svcon.jdbf.JDBFException;
import com.vividsolutions.jts.geom.Dimension;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Polygon;
import java.awt.BorderLayout;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.UIManager;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

import org.geotools.data.FeatureSource;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.map.DefaultMapContext;
import org.geotools.map.MapContext;
import org.geotools.renderer.GTRenderer;
import org.geotools.renderer.lite.StreamingRenderer;
import org.geotools.styling.FeatureTypeStyle;
import org.geotools.styling.Fill;
import org.geotools.styling.Graphic;
import org.geotools.styling.Mark;
import org.geotools.styling.Rule;
import org.geotools.styling.Stroke;
import org.geotools.styling.Style;
import org.geotools.styling.StyleFactory;
import org.geotools.styling.Symbolizer;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.JMapPane;
import org.geotools.swing.data.JFileDataStoreChooser;
import org.geotools.swing.event.MapMouseEvent;
import org.geotools.swing.tool.CursorTool;

import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.feature.type.GeometryDescriptor;
import org.opengis.filter.Filter;
import org.opengis.filter.FilterFactory2;
import org.opengis.filter.identity.FeatureId;

import javax.swing.UnsupportedLookAndFeelException;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.table.DefaultTableModel;
import net.sourceforge.squirrel_sql.client.util.PrintUtilities;
import org.geotools.styling.SLD;
import org.geotools.swing.action.InfoAction;
import org.geotools.swing.action.PanAction;
import org.geotools.swing.action.ZoomInAction;
import org.geotools.swing.action.ZoomOutAction;
import org.opengis.filter.expression.Expression;


public class DesktopFrame extends br.ufpr.JMapFrame {
    private static URL url2;

    private Color LINE_COLOR = Color.BLUE;
    private Color FILL_COLOR = Color.RED;
    private Color SELECTED_COLOR = Color.LIGHT_GRAY;
    private static final float OPACITY = 1.0f;
    private static final float LINE_WIDTH = 1.0f;
    private static final float POINT_SIZE = 10.0f;
    private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource;
    private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource2;
    private String geometryAttributeName;
    private StyleFactory sf = CommonFactoryFinder.getStyleFactory(null);
    private FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
    static final DesktopFrame viewer = new DesktopFrame();
    static private MapContext map;
    static Style style;
    static Style style2;
    static File file;
    PrintUtilities print;
    static private String URLDBF;
    

    public DesktopFrame() {

       final JFrame frame = new JFrame("Social Network Visualization");
       frame.setLayout(new BorderLayout());

       JPanel jPanelCabecalho = new JPanel(new FlowLayout());
       JPanel jPanelMeio = new JPanel(new GridLayout());
       

  jPanelCabecalho.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));
  jPanelMeio.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));


  frame.getContentPane().add(jPanelCabecalho, BorderLayout.NORTH);
  frame.getContentPane().add(jPanelMeio, BorderLayout.CENTER);


     JButton btn_dbf = new JButton("Tabela");
     btn_dbf.setToolTipText("Click this button to open table in the DBF file.");

      JMapPane jMapPane = new JMapPane();
      jPanelMeio.add(jMapPane);

      MapContext map = new DefaultMapContext();

      jPanelCabecalho.add(btn_dbf);

        URL url1;

        FileDataStore store1;
        try {
            url1 = new URL("file:/I:/dadosBruna/bairros.shp");
            store1 = FileDataStoreFinder.getDataStore(url1);
            FeatureSource featureSource1 = store1.getFeatureSource();

            Style style1 = SLD.createPolygonStyle(Color.lightGray, null, 1.0F);
            map.addLayer(featureSource1, style1);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
        
        try {
        URL url2 = new URL("file:/I:/dadosBruna/saude_enlaces.shp");
        FileDataStore store2 = FileDataStoreFinder.getDataStore(url2);
        FeatureSource featureSource2 = store2.getFeatureSource();

        Style style2 = SLD.createLineStyle(Color.BLUE, 1F);
        map.addLayer(featureSource2, style2);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        try {
        URL url3 = new URL("file:/dadosBruna/pontos_saude.shp");
        FileDataStore store3 = FileDataStoreFinder.getDataStore(url3);
        FeatureSource featureSource3 = store3.getFeatureSource();

       Style style3 = SLD.createPointStyle("Circle",
               Color.RED, Color.RED, 1, 8, null, null);
       map.addLayer(featureSource3, style3);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        jMapPane.setMapContext(map);
        jMapPane.setRenderer(new StreamingRenderer());
        jMapPane.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

        JMenuBar jMenuBar = new JMenuBar();
        //jMenuBar.setBackground(Color.lightGray);

        
   

        // Botões 
        
        JMenu jMenu = new JMenu("File");
        JMenuItem abrir = new JMenuItem("Abrir");
        JMenuItem sair = new JMenuItem("Sair");
        JMenuItem jMenuItem = new JMenuItem("Exit");
        jMenu.add(abrir);
        jMenu.add(sair);
        jMenu.add(jMenuItem);
        

        // Ação do botão Exit no menu File
        jMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });


        JMenu jMenu2 = new JMenu("Network");
        JMenuItem jMenuItem21 = new JMenuItem("Health");
        JMenuItem jMenuItem22 = new JMenuItem("Labor");
        JMenuItem jMenuItem23 = new JMenuItem("Education");
        JMenuItem jMenuItem24 = new JMenuItem("Social Assistance");
        JMenuItem jMenuItem25 = new JMenuItem("Housing");
        JMenuItem jMenuItem26 = new JMenuItem("Food Secutiry");
        JMenuItem jMenuItem27 = new JMenuItem("Complete Network");
        jMenu2.add(jMenuItem21);
        jMenu2.add(jMenuItem22);
        jMenu2.add(jMenuItem23);
        jMenu2.add(jMenuItem24);
        jMenu2.add(jMenuItem25);
        jMenu2.add(jMenuItem26);
        jMenu2.add(jMenuItem27);

        jMenuBar.add(jMenu);
        jMenuBar.add(jMenu2);

        frame.setJMenuBar(jMenuBar);

        URL url4;
        try {
            url4 = new URL("file:/dadosBruna/rede_assistencia_social.PNG");
            BufferedImage bufferedImage;
            try {
                bufferedImage = ImageIO.read(url4);
                JLabel jLabel = new JLabel(new ImageIcon(bufferedImage));
            jLabel.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

            jPanelMeio.add(jLabel, BorderLayout.CENTER);
            } catch (IOException ex) {
                Logger.getLogger(DesktopFrame.class.getName())
                        .log(Level.SEVERE, null, ex);
            }
                        
        } catch (MalformedURLException ex) {
            Logger.getLogger(DesktopFrame.class.
                    getName()).log(Level.SEVERE, null, ex);
        }
        
        

        JButton jButtonZoomIn = new JButton(new ZoomInAction(jMapPane));
        JButton jButtonZoomOut = new JButton(new ZoomOutAction(jMapPane));
        JButton jButtonPan = new JButton(new PanAction(jMapPane));
        JButton jButtonIdentify = new JButton(new InfoAction(jMapPane));

        jPanelCabecalho.add(jButtonZoomIn);
        jPanelCabecalho.add(jButtonZoomOut);
        jPanelCabecalho.add(jButtonPan);
        jPanelCabecalho.add(jButtonIdentify);


        // Criando o JPanel para a locação da tabela DBF
        final JPanel jPanelRodape = new JPanel(new FlowLayout());

        javax.swing.GroupLayout jPanelLayout =
                new javax.swing.GroupLayout(jPanelRodape);

       jPanelRodape.setLayout(jPanelLayout);
        jPanelLayout.setHorizontalGroup(
           jPanelLayout.createParallelGroup
             (GroupLayout.Alignment.LEADING).addGap(0, 600,
             Short.MAX_VALUE)
             );
        jPanelLayout.setVerticalGroup(
           jPanelLayout.createParallelGroup
             (GroupLayout.Alignment.LEADING).addGap(0, 200, Short.MAX_VALUE));

        frame.getContentPane().add(jPanelRodape, BorderLayout.SOUTH);
    jPanelRodape.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

     // Action Listener para abrir o arquivo dbf
     // Quando se abre um arquivo shape (8.shp0 o mesmo pega o mesmo endereço
     // utilizado e já procura um arquivo de mesmo nome e de extenção (*.dbf).

        btn_dbf.addActionListener(new ActionListener(){
            private Object dbf;
            public void actionPerformed(ActionEvent a){


                // aqui a chamada
                JTable tabelaDBF = new JTable();
                jPanelRodape.remove( tabelaDBF );
             try{
              //enderecoDBF = "I:/dadosBruna/bairros.dbf";
              int numeroLinhasDBF = DBFdata.numeroLinhas(DesktopFrame.URLDBF);
              int numeroColunasDBF = DBFdata.numeroColunas(DesktopFrame.URLDBF);

              tabelaDBF.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
              //Ativa barra de rolagem horizontal
              tabelaDBF.setModel(new ModeloTabela(DBFdata.cabecalhoTabela
                   (DesktopFrame.URLDBF), numeroLinhasDBF, numeroColunasDBF));

              if(numeroColunasDBF < 19){
     // define o tamanho das colunas em tabelas com o numero pequeno de colunas
              for (int i =0; i < numeroColunasDBF; i++){
                  tabelaDBF.getColumnModel().getColumn(i).setPreferredWidth
                              ((jPanelRodape.getWidth()/numeroColunasDBF)-7);
              }
           }
              InputStream stream = new BufferedInputStream
                      (new FileInputStream (DesktopFrame.URLDBF));
              DBFReader dbf = new DBFReader(stream);

             for (int i = 1; i < numeroLinhasDBF; i++) {
                        Object aobj[] = dbf.nextRecord();
                        for (int j = 0; j < aobj.length; j++) {
                            if (aobj[j] == null) {
                                aobj[j] = "";
                            }

              tabelaDBF.setValueAt(aobj[j].toString(), (i -1), j);
                }
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
        }
                catch (JDBFException ex){
                 Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                         null, ex);
        }
                JScrollPane scrollPane = new JScrollPane(tabelaDBF);
                scrollPane.setLocation(0,0);
                scrollPane.setSize(700,200);
                jPanelRodape.add(scrollPane);
                jPanelRodape.setVisible(true);
            }
        });

       

        abrir.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                try{
                    loadloadShapeFile();

 // O mapPane.reset();" abaixo foi adicionado para eliminar a demora na pintura
           // do shape na tela, que anteriormente a ele estava acontecendo.

                    mapPane.reset();

            } catch (Exception ex){
               Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
                }
            }
        });

        sair.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
         try{
              
              frame.dispose();
            } catch (Throwable ex){
               Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
                }
            }
        });



        initComponents();

         //obtendo dimensos da tela



        frame.setSize(600, 600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

      
    }

   

    public static void main(String[] args) throws MalformedURLException, IOException, Exception{
        //URL url2 = new URL("file:/I:/dadosBruna/saude_enlaces.shp");
      //  DesktopFrame app = new DesktopFrame();
//
      //  app.displayShapefile(url2);




        DesktopFrame app = new DesktopFrame();

       
        app.addWindowListener(
              new WindowAdapter(){
         public void windowClosing(WindowEvent e){
              System.exit(0);
           }
       });


    }


  static public void loadloadShapeFile() throws Exception{

      file = JFileDataStoreChooser.showOpenFile("shp",null);

       setURLDBF(file.getAbsolutePath().substring(
              0, file.getAbsolutePath().length() - 4) + ".dbf");
      if ( file == null){
          System.out.println("erro aquii");
          return;
      }
     
  }

   static public void loadShapeFile() throws Exception{

      file = JFileDataStoreChooser.showOpenFile("shp",null);

       setURLDBF(file.getAbsolutePath().substring(
              0, file.getAbsolutePath().length() - 4) + ".dbf");
      if ( file == null){
          System.out.println("erro aquii");
          return;
      }

  }

  static public String getURLDBF(){
      return URLDBF;
    }

  static public void setURLDBF(String URLDBF){
      DesktopFrame.URLDBF = URLDBF;
    }
}

obrigada

brunajeniferf

Outra coisa que não aonde está o problema e se puder me ajuda fico grata, é quando eu executo mostra duas janelas iguais

vc sabe aonde pode estar o erro?

obrigada

Gerva

brunajeniferf:
Oi estou com um problema no seguinte, eu mostro uma tabela no meu programa, e quando eu abro outra tabela ela fica em cima da anterior e quando vou clicar nela aparece apenas a anterior, então gostaria de saber como eu faço pra fechar essa tabela anterior, eu pensei em um botao chamado sair, ou até mesmo no botão aonde abre a tabela, alguem pode me ajudar mostrando o comando que faria isso.

muito obrigada

JM4X

Só não entendi qual arquivo você quer fechar… =D

Se não for incomodo, poderia alterar o titulo para “fechar janela”, só para quando outros for consultar…

Colocar [RESOLVIDO] no titulo do topico quando encontrar a solucao é legalz tbm…

ajude a comu!

:wink:

Rafael_Costa_Teixeir

brunajeniferf ,

Efetuei algumas pequenas modificações na sua classe ( veja linha 134,138, e 317 até 327) :

package br.ufpr;

import com.svcon.jdbf.DBFReader;
import com.svcon.jdbf.JDBFException;
import com.vividsolutions.jts.geom.Dimension;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Polygon;
import java.awt.BorderLayout;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.UIManager;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

import org.geotools.data.FeatureSource;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.map.DefaultMapContext;
import org.geotools.map.MapContext;
import org.geotools.renderer.GTRenderer;
import org.geotools.renderer.lite.StreamingRenderer;
import org.geotools.styling.FeatureTypeStyle;
import org.geotools.styling.Fill;
import org.geotools.styling.Graphic;
import org.geotools.styling.Mark;
import org.geotools.styling.Rule;
import org.geotools.styling.Stroke;
import org.geotools.styling.Style;
import org.geotools.styling.StyleFactory;
import org.geotools.styling.Symbolizer;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.JMapPane;
import org.geotools.swing.data.JFileDataStoreChooser;
import org.geotools.swing.event.MapMouseEvent;
import org.geotools.swing.tool.CursorTool;

import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.feature.type.GeometryDescriptor;
import org.opengis.filter.Filter;
import org.opengis.filter.FilterFactory2;
import org.opengis.filter.identity.FeatureId;

import javax.swing.UnsupportedLookAndFeelException;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.table.DefaultTableModel;
import net.sourceforge.squirrel_sql.client.util.PrintUtilities;
import org.geotools.styling.SLD;
import org.geotools.swing.action.InfoAction;
import org.geotools.swing.action.PanAction;
import org.geotools.swing.action.ZoomInAction;
import org.geotools.swing.action.ZoomOutAction;
import org.opengis.filter.expression.Expression;


public class DesktopFrame extends br.ufpr.JMapFrame {
    private static URL url2;

    private Color LINE_COLOR = Color.BLUE;
    private Color FILL_COLOR = Color.RED;
    private Color SELECTED_COLOR = Color.LIGHT_GRAY;
    private static final float OPACITY = 1.0f;
    private static final float LINE_WIDTH = 1.0f;
    private static final float POINT_SIZE = 10.0f;
    private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource;
    private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource2;
    private String geometryAttributeName;
    private StyleFactory sf = CommonFactoryFinder.getStyleFactory(null);
    private FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
    static final DesktopFrame viewer = new DesktopFrame();
    static private MapContext map;
    static Style style;
    static Style style2;
    static File file;
    PrintUtilities print;
    static private String URLDBF;
    boolean existeTabela;

    public DesktopFrame() {
		
		existeTabela = false;
       final JFrame frame = new JFrame("Social Network Visualization");
       frame.setLayout(new BorderLayout());

       JPanel jPanelCabecalho = new JPanel(new FlowLayout());
       JPanel jPanelMeio = new JPanel(new GridLayout());
       

  jPanelCabecalho.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));
  jPanelMeio.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));


  frame.getContentPane().add(jPanelCabecalho, BorderLayout.NORTH);
  frame.getContentPane().add(jPanelMeio, BorderLayout.CENTER);


     JButton btn_dbf = new JButton("Tabela");
     btn_dbf.setToolTipText("Click this button to open table in the DBF file.");

      JMapPane jMapPane = new JMapPane();
      jPanelMeio.add(jMapPane);

      MapContext map = new DefaultMapContext();

      jPanelCabecalho.add(btn_dbf);

        URL url1;

        FileDataStore store1;
        try {
            url1 = new URL("file:/I:/dadosBruna/bairros.shp");
            store1 = FileDataStoreFinder.getDataStore(url1);
            FeatureSource featureSource1 = store1.getFeatureSource();

            Style style1 = SLD.createPolygonStyle(Color.lightGray, null, 1.0F);
            map.addLayer(featureSource1, style1);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
        
        try {
        URL url2 = new URL("file:/I:/dadosBruna/saude_enlaces.shp");
        FileDataStore store2 = FileDataStoreFinder.getDataStore(url2);
        FeatureSource featureSource2 = store2.getFeatureSource();

        Style style2 = SLD.createLineStyle(Color.BLUE, 1F);
        map.addLayer(featureSource2, style2);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        try {
        URL url3 = new URL("file:/dadosBruna/pontos_saude.shp");
        FileDataStore store3 = FileDataStoreFinder.getDataStore(url3);
        FeatureSource featureSource3 = store3.getFeatureSource();

       Style style3 = SLD.createPointStyle("Circle",
               Color.RED, Color.RED, 1, 8, null, null);
       map.addLayer(featureSource3, style3);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        jMapPane.setMapContext(map);
        jMapPane.setRenderer(new StreamingRenderer());
        jMapPane.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

        JMenuBar jMenuBar = new JMenuBar();
        //jMenuBar.setBackground(Color.lightGray);

        
   

        // Botões 
        
        JMenu jMenu = new JMenu("File");
        JMenuItem abrir = new JMenuItem("Abrir");
        JMenuItem sair = new JMenuItem("Sair");
        JMenuItem jMenuItem = new JMenuItem("Exit");
        jMenu.add(abrir);
        jMenu.add(sair);
        jMenu.add(jMenuItem);
        

        // Ação do botão Exit no menu File
        jMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });


        JMenu jMenu2 = new JMenu("Network");
        JMenuItem jMenuItem21 = new JMenuItem("Health");
        JMenuItem jMenuItem22 = new JMenuItem("Labor");
        JMenuItem jMenuItem23 = new JMenuItem("Education");
        JMenuItem jMenuItem24 = new JMenuItem("Social Assistance");
        JMenuItem jMenuItem25 = new JMenuItem("Housing");
        JMenuItem jMenuItem26 = new JMenuItem("Food Secutiry");
        JMenuItem jMenuItem27 = new JMenuItem("Complete Network");
        jMenu2.add(jMenuItem21);
        jMenu2.add(jMenuItem22);
        jMenu2.add(jMenuItem23);
        jMenu2.add(jMenuItem24);
        jMenu2.add(jMenuItem25);
        jMenu2.add(jMenuItem26);
        jMenu2.add(jMenuItem27);

        jMenuBar.add(jMenu);
        jMenuBar.add(jMenu2);

        frame.setJMenuBar(jMenuBar);

        URL url4;
        try {
            url4 = new URL("file:/dadosBruna/rede_assistencia_social.PNG");
            BufferedImage bufferedImage;
            try {
                bufferedImage = ImageIO.read(url4);
                JLabel jLabel = new JLabel(new ImageIcon(bufferedImage));
            jLabel.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

            jPanelMeio.add(jLabel, BorderLayout.CENTER);
            } catch (IOException ex) {
                Logger.getLogger(DesktopFrame.class.getName())
                        .log(Level.SEVERE, null, ex);
            }
                        
        } catch (MalformedURLException ex) {
            Logger.getLogger(DesktopFrame.class.
                    getName()).log(Level.SEVERE, null, ex);
        }
        
        

        JButton jButtonZoomIn = new JButton(new ZoomInAction(jMapPane));
        JButton jButtonZoomOut = new JButton(new ZoomOutAction(jMapPane));
        JButton jButtonPan = new JButton(new PanAction(jMapPane));
        JButton jButtonIdentify = new JButton(new InfoAction(jMapPane));

        jPanelCabecalho.add(jButtonZoomIn);
        jPanelCabecalho.add(jButtonZoomOut);
        jPanelCabecalho.add(jButtonPan);
        jPanelCabecalho.add(jButtonIdentify);


        // Criando o JPanel para a locação da tabela DBF
        final JPanel jPanelRodape = new JPanel(new FlowLayout());

        javax.swing.GroupLayout jPanelLayout =
                new javax.swing.GroupLayout(jPanelRodape);

       jPanelRodape.setLayout(jPanelLayout);
        jPanelLayout.setHorizontalGroup(
           jPanelLayout.createParallelGroup
             (GroupLayout.Alignment.LEADING).addGap(0, 600,
             Short.MAX_VALUE)
             );
        jPanelLayout.setVerticalGroup(
           jPanelLayout.createParallelGroup
             (GroupLayout.Alignment.LEADING).addGap(0, 200, Short.MAX_VALUE));

        frame.getContentPane().add(jPanelRodape, BorderLayout.SOUTH);
    jPanelRodape.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

     // Action Listener para abrir o arquivo dbf
     // Quando se abre um arquivo shape (8.shp0 o mesmo pega o mesmo endereço
     // utilizado e já procura um arquivo de mesmo nome e de extenção (*.dbf).

        btn_dbf.addActionListener(new ActionListener(){
            private Object dbf;
            public void actionPerformed(ActionEvent a){


                // aqui a chamada
				if( existeTabela ) {
					
					jPanelRodape.remove( tabelaDBF );
					JTable tabelaDBF = new JTable();
					jPanelRodape.add( tabelaDBF );
				} else {
				
					JTable tabelaDBF = new JTable();
					jPanelRodape.add( tabelaDBF );
					existeTabela = true;
				}
				
             try{
              //enderecoDBF = "I:/dadosBruna/bairros.dbf";
              int numeroLinhasDBF = DBFdata.numeroLinhas(DesktopFrame.URLDBF);
              int numeroColunasDBF = DBFdata.numeroColunas(DesktopFrame.URLDBF);

              tabelaDBF.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
              //Ativa barra de rolagem horizontal
              tabelaDBF.setModel(new ModeloTabela(DBFdata.cabecalhoTabela
                   (DesktopFrame.URLDBF), numeroLinhasDBF, numeroColunasDBF));

              if(numeroColunasDBF < 19){
     // define o tamanho das colunas em tabelas com o numero pequeno de colunas
              for (int i =0; i < numeroColunasDBF; i++){
                  tabelaDBF.getColumnModel().getColumn(i).setPreferredWidth
                              ((jPanelRodape.getWidth()/numeroColunasDBF)-7);
              }
           }
              InputStream stream = new BufferedInputStream
                      (new FileInputStream (DesktopFrame.URLDBF));
              DBFReader dbf = new DBFReader(stream);

             for (int i = 1; i < numeroLinhasDBF; i++) {
                        Object aobj[] = dbf.nextRecord();
                        for (int j = 0; j < aobj.length; j++) {
                            if (aobj[j] == null) {
                                aobj[j] = "";
                            }

              tabelaDBF.setValueAt(aobj[j].toString(), (i -1), j);
                }
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
        }
                catch (JDBFException ex){
                 Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                         null, ex);
        }
                JScrollPane scrollPane = new JScrollPane(tabelaDBF);
                scrollPane.setLocation(0,0);
                scrollPane.setSize(700,200);
                jPanelRodape.add(scrollPane);
                jPanelRodape.setVisible(true);
            }
        });

       

        abrir.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                try{
                    loadloadShapeFile();

 // O mapPane.reset();" abaixo foi adicionado para eliminar a demora na pintura
           // do shape na tela, que anteriormente a ele estava acontecendo.

                    mapPane.reset();

            } catch (Exception ex){
               Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
                }
            }
        });

        sair.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
         try{
              
              frame.dispose();
            } catch (Throwable ex){
               Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
                }
            }
        });



        initComponents();

         //obtendo dimensos da tela



        frame.setSize(600, 600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

      
    }

   

    public static void main(String[] args) throws MalformedURLException, IOException, Exception{
        //URL url2 = new URL("file:/I:/dadosBruna/saude_enlaces.shp");
      //  DesktopFrame app = new DesktopFrame();
//
      //  app.displayShapefile(url2);




        DesktopFrame app = new DesktopFrame();

       
        app.addWindowListener(
              new WindowAdapter(){
         public void windowClosing(WindowEvent e){
              System.exit(0);
           }
       });


    }


  static public void loadloadShapeFile() throws Exception{

      file = JFileDataStoreChooser.showOpenFile("shp",null);

       setURLDBF(file.getAbsolutePath().substring(
              0, file.getAbsolutePath().length() - 4) + ".dbf");
      if ( file == null){
          System.out.println("erro aquii");
          return;
      }
     
  }

   static public void loadShapeFile() throws Exception{

      file = JFileDataStoreChooser.showOpenFile("shp",null);

       setURLDBF(file.getAbsolutePath().substring(
              0, file.getAbsolutePath().length() - 4) + ".dbf");
      if ( file == null){
          System.out.println("erro aquii");
          return;
      }

  }

  static public String getURLDBF(){
      return URLDBF;
    }

  static public void setURLDBF(String URLDBF){
      DesktopFrame.URLDBF = URLDBF;
    }
}

Testa ai , Espero que funcione , ou pelo menos chegue perto de funcionar.

brunajeniferf

Oi Rafael, muito obrigada pela ajuda, mas aconteceu o seguinte

no trecho que está no if que vc inseriu ele ta dando erro na linha

jPanelRodape.remove( tabelaDBF );

pois ele está considerando que não existe nenhuma tabelaDBF ali,

como faço pra resolver isso?

Rafael_Costa_Teixeir

brunajeniferf ,

Boa tarde !

Modifiquei a linha 135,321,325 tenta agora.

package br.ufpr;

import com.svcon.jdbf.DBFReader;
import com.svcon.jdbf.JDBFException;
import com.vividsolutions.jts.geom.Dimension;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Polygon;
import java.awt.BorderLayout;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.HashSet;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JToolBar;
import javax.swing.UIManager;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;

import org.geotools.data.FeatureSource;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.shapefile.ShapefileDataStore;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.feature.FeatureCollection;
import org.geotools.feature.FeatureIterator;
import org.geotools.geometry.jts.ReferencedEnvelope;
import org.geotools.map.DefaultMapContext;
import org.geotools.map.MapContext;
import org.geotools.renderer.GTRenderer;
import org.geotools.renderer.lite.StreamingRenderer;
import org.geotools.styling.FeatureTypeStyle;
import org.geotools.styling.Fill;
import org.geotools.styling.Graphic;
import org.geotools.styling.Mark;
import org.geotools.styling.Rule;
import org.geotools.styling.Stroke;
import org.geotools.styling.Style;
import org.geotools.styling.StyleFactory;
import org.geotools.styling.Symbolizer;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.JMapPane;
import org.geotools.swing.data.JFileDataStoreChooser;
import org.geotools.swing.event.MapMouseEvent;
import org.geotools.swing.tool.CursorTool;

import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.feature.type.GeometryDescriptor;
import org.opengis.filter.Filter;
import org.opengis.filter.FilterFactory2;
import org.opengis.filter.identity.FeatureId;

import javax.swing.UnsupportedLookAndFeelException;
import org.omg.PortableInterceptor.SYSTEM_EXCEPTION;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.table.DefaultTableModel;
import net.sourceforge.squirrel_sql.client.util.PrintUtilities;
import org.geotools.styling.SLD;
import org.geotools.swing.action.InfoAction;
import org.geotools.swing.action.PanAction;
import org.geotools.swing.action.ZoomInAction;
import org.geotools.swing.action.ZoomOutAction;
import org.opengis.filter.expression.Expression;


public class DesktopFrame extends br.ufpr.JMapFrame {
    private static URL url2;

    private Color LINE_COLOR = Color.BLUE;
    private Color FILL_COLOR = Color.RED;
    private Color SELECTED_COLOR = Color.LIGHT_GRAY;
    private static final float OPACITY = 1.0f;
    private static final float LINE_WIDTH = 1.0f;
    private static final float POINT_SIZE = 10.0f;
    private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource;
    private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource2;
    private String geometryAttributeName;
    private StyleFactory sf = CommonFactoryFinder.getStyleFactory(null);
    private FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null);
    static final DesktopFrame viewer = new DesktopFrame();
    static private MapContext map;
    static Style style;
    static Style style2;
    static File file;
    PrintUtilities print;
    static private String URLDBF;
    boolean existeTabela;
    JTable tabelaDBF;

    public DesktopFrame() {
		
		existeTabela = false;
       final JFrame frame = new JFrame("Social Network Visualization");
       frame.setLayout(new BorderLayout());

       JPanel jPanelCabecalho = new JPanel(new FlowLayout());
       JPanel jPanelMeio = new JPanel(new GridLayout());
       

  jPanelCabecalho.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));
  jPanelMeio.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));


  frame.getContentPane().add(jPanelCabecalho, BorderLayout.NORTH);
  frame.getContentPane().add(jPanelMeio, BorderLayout.CENTER);


     JButton btn_dbf = new JButton("Tabela");
     btn_dbf.setToolTipText("Click this button to open table in the DBF file.");

      JMapPane jMapPane = new JMapPane();
      jPanelMeio.add(jMapPane);

      MapContext map = new DefaultMapContext();

      jPanelCabecalho.add(btn_dbf);

        URL url1;

        FileDataStore store1;
        try {
            url1 = new URL("file:/I:/dadosBruna/bairros.shp");
            store1 = FileDataStoreFinder.getDataStore(url1);
            FeatureSource featureSource1 = store1.getFeatureSource();

            Style style1 = SLD.createPolygonStyle(Color.lightGray, null, 1.0F);
            map.addLayer(featureSource1, style1);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
        
        try {
        URL url2 = new URL("file:/I:/dadosBruna/saude_enlaces.shp");
        FileDataStore store2 = FileDataStoreFinder.getDataStore(url2);
        FeatureSource featureSource2 = store2.getFeatureSource();

        Style style2 = SLD.createLineStyle(Color.BLUE, 1F);
        map.addLayer(featureSource2, style2);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        try {
        URL url3 = new URL("file:/dadosBruna/pontos_saude.shp");
        FileDataStore store3 = FileDataStoreFinder.getDataStore(url3);
        FeatureSource featureSource3 = store3.getFeatureSource();

       Style style3 = SLD.createPointStyle("Circle",
               Color.RED, Color.RED, 1, 8, null, null);
       map.addLayer(featureSource3, style3);
        } catch (IOException ex) {
            Logger.getLogger(DesktopFrame.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

        jMapPane.setMapContext(map);
        jMapPane.setRenderer(new StreamingRenderer());
        jMapPane.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

        JMenuBar jMenuBar = new JMenuBar();
        //jMenuBar.setBackground(Color.lightGray);

        
   

        // Botões 
        
        JMenu jMenu = new JMenu("File");
        JMenuItem abrir = new JMenuItem("Abrir");
        JMenuItem sair = new JMenuItem("Sair");
        JMenuItem jMenuItem = new JMenuItem("Exit");
        jMenu.add(abrir);
        jMenu.add(sair);
        jMenu.add(jMenuItem);
        

        // Ação do botão Exit no menu File
        jMenuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });


        JMenu jMenu2 = new JMenu("Network");
        JMenuItem jMenuItem21 = new JMenuItem("Health");
        JMenuItem jMenuItem22 = new JMenuItem("Labor");
        JMenuItem jMenuItem23 = new JMenuItem("Education");
        JMenuItem jMenuItem24 = new JMenuItem("Social Assistance");
        JMenuItem jMenuItem25 = new JMenuItem("Housing");
        JMenuItem jMenuItem26 = new JMenuItem("Food Secutiry");
        JMenuItem jMenuItem27 = new JMenuItem("Complete Network");
        jMenu2.add(jMenuItem21);
        jMenu2.add(jMenuItem22);
        jMenu2.add(jMenuItem23);
        jMenu2.add(jMenuItem24);
        jMenu2.add(jMenuItem25);
        jMenu2.add(jMenuItem26);
        jMenu2.add(jMenuItem27);

        jMenuBar.add(jMenu);
        jMenuBar.add(jMenu2);

        frame.setJMenuBar(jMenuBar);

        URL url4;
        try {
            url4 = new URL("file:/dadosBruna/rede_assistencia_social.PNG");
            BufferedImage bufferedImage;
            try {
                bufferedImage = ImageIO.read(url4);
                JLabel jLabel = new JLabel(new ImageIcon(bufferedImage));
            jLabel.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

            jPanelMeio.add(jLabel, BorderLayout.CENTER);
            } catch (IOException ex) {
                Logger.getLogger(DesktopFrame.class.getName())
                        .log(Level.SEVERE, null, ex);
            }
                        
        } catch (MalformedURLException ex) {
            Logger.getLogger(DesktopFrame.class.
                    getName()).log(Level.SEVERE, null, ex);
        }
        
        

        JButton jButtonZoomIn = new JButton(new ZoomInAction(jMapPane));
        JButton jButtonZoomOut = new JButton(new ZoomOutAction(jMapPane));
        JButton jButtonPan = new JButton(new PanAction(jMapPane));
        JButton jButtonIdentify = new JButton(new InfoAction(jMapPane));

        jPanelCabecalho.add(jButtonZoomIn);
        jPanelCabecalho.add(jButtonZoomOut);
        jPanelCabecalho.add(jButtonPan);
        jPanelCabecalho.add(jButtonIdentify);


        // Criando o JPanel para a locação da tabela DBF
        final JPanel jPanelRodape = new JPanel(new FlowLayout());

        javax.swing.GroupLayout jPanelLayout =
                new javax.swing.GroupLayout(jPanelRodape);

       jPanelRodape.setLayout(jPanelLayout);
        jPanelLayout.setHorizontalGroup(
           jPanelLayout.createParallelGroup
             (GroupLayout.Alignment.LEADING).addGap(0, 600,
             Short.MAX_VALUE)
             );
        jPanelLayout.setVerticalGroup(
           jPanelLayout.createParallelGroup
             (GroupLayout.Alignment.LEADING).addGap(0, 200, Short.MAX_VALUE));

        frame.getContentPane().add(jPanelRodape, BorderLayout.SOUTH);
    jPanelRodape.setBorder(BorderFactory.createLineBorder(Color.DARK_GRAY, 1));

     // Action Listener para abrir o arquivo dbf
     // Quando se abre um arquivo shape (8.shp0 o mesmo pega o mesmo endereço
     // utilizado e já procura um arquivo de mesmo nome e de extenção (*.dbf).

        btn_dbf.addActionListener(new ActionListener(){
            private Object dbf;
            public void actionPerformed(ActionEvent a){


                // aqui a chamada
				if( existeTabela ) {
					
					jPanelRodape.remove( tabelaDBF );
					tabelaDBF = new JTable();
					jPanelRodape.add( tabelaDBF );
				} else {
				
					tabelaDBF = new JTable();
					jPanelRodape.add( tabelaDBF );
					existeTabela = true;
				}
				
             try{
              //enderecoDBF = "I:/dadosBruna/bairros.dbf";
              int numeroLinhasDBF = DBFdata.numeroLinhas(DesktopFrame.URLDBF);
              int numeroColunasDBF = DBFdata.numeroColunas(DesktopFrame.URLDBF);

              tabelaDBF.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
              //Ativa barra de rolagem horizontal
              tabelaDBF.setModel(new ModeloTabela(DBFdata.cabecalhoTabela
                   (DesktopFrame.URLDBF), numeroLinhasDBF, numeroColunasDBF));

              if(numeroColunasDBF < 19){
     // define o tamanho das colunas em tabelas com o numero pequeno de colunas
              for (int i =0; i < numeroColunasDBF; i++){
                  tabelaDBF.getColumnModel().getColumn(i).setPreferredWidth
                              ((jPanelRodape.getWidth()/numeroColunasDBF)-7);
              }
           }
              InputStream stream = new BufferedInputStream
                      (new FileInputStream (DesktopFrame.URLDBF));
              DBFReader dbf = new DBFReader(stream);

             for (int i = 1; i < numeroLinhasDBF; i++) {
                        Object aobj[] = dbf.nextRecord();
                        for (int j = 0; j < aobj.length; j++) {
                            if (aobj[j] == null) {
                                aobj[j] = "";
                            }

              tabelaDBF.setValueAt(aobj[j].toString(), (i -1), j);
                }
            }
        } catch (FileNotFoundException ex) {
            Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
        }
                catch (JDBFException ex){
                 Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                         null, ex);
        }
                JScrollPane scrollPane = new JScrollPane(tabelaDBF);
                scrollPane.setLocation(0,0);
                scrollPane.setSize(700,200);
                jPanelRodape.add(scrollPane);
                jPanelRodape.setVisible(true);
            }
        });

       

        abrir.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                try{
                    loadloadShapeFile();

 // O mapPane.reset();" abaixo foi adicionado para eliminar a demora na pintura
           // do shape na tela, que anteriormente a ele estava acontecendo.

                    mapPane.reset();

            } catch (Exception ex){
               Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
                }
            }
        });

        sair.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
         try{
              
              frame.dispose();
            } catch (Throwable ex){
               Logger.getLogger(DesktopFrame.class.getName()).log(Level.SEVERE,
                    null, ex);
                }
            }
        });



        initComponents();

         //obtendo dimensos da tela



        frame.setSize(600, 600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

      
    }

   

    public static void main(String[] args) throws MalformedURLException, IOException, Exception{
        //URL url2 = new URL("file:/I:/dadosBruna/saude_enlaces.shp");
      //  DesktopFrame app = new DesktopFrame();
//
      //  app.displayShapefile(url2);




        DesktopFrame app = new DesktopFrame();

       
        app.addWindowListener(
              new WindowAdapter(){
         public void windowClosing(WindowEvent e){
              System.exit(0);
           }
       });


    }


  static public void loadloadShapeFile() throws Exception{

      file = JFileDataStoreChooser.showOpenFile("shp",null);

       setURLDBF(file.getAbsolutePath().substring(
              0, file.getAbsolutePath().length() - 4) + ".dbf");
      if ( file == null){
          System.out.println("erro aquii");
          return;
      }
     
  }

   static public void loadShapeFile() throws Exception{

      file = JFileDataStoreChooser.showOpenFile("shp",null);

       setURLDBF(file.getAbsolutePath().substring(
              0, file.getAbsolutePath().length() - 4) + ".dbf");
      if ( file == null){
          System.out.println("erro aquii");
          return;
      }

  }

  static public String getURLDBF(){
      return URLDBF;
    }

  static public void setURLDBF(String URLDBF){
      DesktopFrame.URLDBF = URLDBF;
    }
}

Espero que funcione. :smiley:

brunajeniferf

:frowning: continua a mesma coisa, eu abro uma tabela ta ok, ai quando vou abrir uma nova pra substitui, essa nova aparece

mas quando clica nela, ou tenta mover na barra de rolagem, aparece a tabela anterior novamente.

brunajeniferf

Tava pensando se ao invés de remover a tabela dentro da ação do button, se não há como fazer um if que funcione da seguinte maneira:

se o button tabela ja foi clicado anteriormente remove a tabelaDBF

else

se a tabela nao foi clicada não remove

Tem como fazer assim, colocar um if dessa maneira a cada vez que o button tabela foi clicado?

Porque o que entendi do que vc fez, ele não removia a tabela que fora gerada com a ação do button e sim a tabela que estava vazia
criada fora da ação do button.

Muito Obrigada pela ajuda

Rafael_Costa_Teixeir

Tenta fazer assim , e depois posta ai o resultado.

brunajeniferf

Não consegui fazer :cry:

eu não como fazer um if dessa forma, como seria colocar o click no botão

Criado 21 de julho de 2011
Ultima resposta 29 de jul. de 2011
Respostas 12
Participantes 4