Avatar billede aslan Nybegynder
09. juni 2002 - 16:47 Der er 4 kommentarer og
1 løsning

Opdatere JTable?

Hvorfor opdatere JTable ikke sig selv når der bliver hentet nyt data? Det troede jeg at den gjorde automatisk...

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;


public class Opslag extends JFrame
{


    Reservation hentRes;
    Værelse hentVærelse;

    Object[][] data;
    String[] panelTekst;

    public Opslag(Reservation r,Værelse v)
    {
        hentRes = r;
        hentVærelse = v;

    }
        public void visRes()
        {

        data = new Object[hentRes.tæller()][8];
        panelTekst = new String[8];

        panelTekst[0] = "Res Nr";
        panelTekst[1] = "GæsteNr";
        panelTekst[2] = "VærelsesNr";
        panelTekst[3] = "Udl Start";
        panelTekst[4] = "Udl Slut";
        panelTekst[5] = "Check Ind";
        panelTekst[6] = "Check Ud";
        panelTekst[7] = "Res Dato";

        JTable table = new JTable(data, panelTekst);


        JScrollPane scrollPane = new JScrollPane(table);


        getContentPane().add(scrollPane, BorderLayout.CENTER);

        this.setEnabled(false);


        try {

        ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

        ResultSet row = db.select( "SELECT * FROM RESERVATION" );


                for(int i=0;row.next();i++)
                {
                    int ii = 0;
                    data[i][ii] = row.getString("RESNR");
                    ii++;
                    data[i][ii] = row.getString("GAESTENR");
                    ii++;
                    data[i][ii] = row.getString("VAERNR");
                    ii++;
                    data[i][ii] = row.getString("DATOUDLSTART");
                    ii++;
                    data[i][ii] = row.getString("DATOUDLSLUT");
                    ii++;
                    data[i][ii] = row.getString("DATOCHECKIND");
                    ii++;
                    data[i][ii] = row.getString("DATOCHECKUD");
                    ii++;
                    data[i][ii] = row.getString("DATORES");
                    ii++;
                }

            } catch (SQLException e)

            {



            }
            catch(NullPointerException a)
            {

            }



        }
        public void visVærelser()
        {

        data = new Object[hentVærelse.tæller()][11];
        panelTekst = new String[11];

        panelTekst[0] = "Værelse Nr";
        panelTekst[1] = "Type";
        panelTekst[2] = "Res Nr";
        panelTekst[3] = "Status";
        panelTekst[4] = "Havudsigt";
        panelTekst[5] = "Sal";
        panelTekst[6] = "Gang Nr";
        panelTekst[7] = "Pris";
        panelTekst[8] = "Størrelse";
        panelTekst[9] = "Stil";
        panelTekst[10] = "Antal bad";

        JTable table = new JTable(data, panelTekst);


        JScrollPane scrollPane = new JScrollPane(table);


        getContentPane().add(scrollPane, BorderLayout.CENTER);

        this.setEnabled(false);

        try {

        ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

        ResultSet row = db.select( "SELECT * FROM VAERELSE" );


                for(int i=0;row.next();i++)
                {
                    int ii = 0;
                    data[i][ii] = row.getString("VAERELSENR");
                    ii++;
                    data[i][ii] = row.getString("TYPEN");
                    ii++;
                    data[i][ii] = row.getString("RESNR");
                    ii++;
                    data[i][ii] = row.getString("VAERELSESTATUS");
                    ii++;
                    data[i][ii] = row.getString("HAVUDSIGT");
                    ii++;
                    data[i][ii] = row.getString("SAL");
                    ii++;
                    data[i][ii] = row.getString("STEDGANG");
                    ii++;
                    data[i][ii] = row.getString("PRIS");
                    ii++;
                    data[i][ii] = row.getString("STORRELSE");
                    ii++;
                    data[i][ii] = row.getString("STIL");
                    ii++;
                    data[i][ii] = row.getString("ANTALBAD");
                    ii++;
                }

            } catch (SQLException e)

            {



            }
            catch(NullPointerException a)
            {

            }

        }


}







Vælger jeg først den ene metode kan jeg ikke opdatere med det andet?? Nogen der kan hjælpe?
Avatar billede olly Nybegynder
09. juni 2002 - 16:51 #1
JTable table;
JScrollPane scrollPane;

Def dem for hele klassen og ikke kun scopet...
Avatar billede olly Nybegynder
09. juni 2002 - 16:52 #2
Desuden glemmer man this.repaint(); :)
Avatar billede aslan Nybegynder
09. juni 2002 - 19:40 #3
Min fil ser sådan ud nu, men det hjælper stadig ikke den kan ikke finde ud af at opdatere sig selv...



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;


public class Opslag extends JFrame
{


    Reservation hentRes;
    Værelse hentVærelse;

    Object[][] data;
    String[] panelTekst;
    JTable table;
    JScrollPane scrollPane;

    public Opslag(Reservation r,Værelse v)
    {
        hentRes = r;
        hentVærelse = v;

    }
        public void visRes()
        {

        data = new Object[hentRes.tæller()][8];
        panelTekst = new String[8];

        panelTekst[0] = "Res Nr";
        panelTekst[1] = "GæsteNr";
        panelTekst[2] = "VærelsesNr";
        panelTekst[3] = "Udl Start";
        panelTekst[4] = "Udl Slut";
        panelTekst[5] = "Check Ind";
        panelTekst[6] = "Check Ud";
        panelTekst[7] = "Res Dato";

        table = new JTable(data, panelTekst);


        scrollPane = new JScrollPane(table);


        getContentPane().add(scrollPane, BorderLayout.CENTER);

        this.setEnabled(false);


        try {

        ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

        ResultSet row = db.select( "SELECT * FROM RESERVATION" );


                for(int i=0;row.next();i++)
                {
                    int ii = 0;
                    data[i][ii] = row.getString("RESNR");
                    ii++;
                    data[i][ii] = row.getString("GAESTENR");
                    ii++;
                    data[i][ii] = row.getString("VAERNR");
                    ii++;
                    data[i][ii] = row.getString("DATOUDLSTART");
                    ii++;
                    data[i][ii] = row.getString("DATOUDLSLUT");
                    ii++;
                    data[i][ii] = row.getString("DATOCHECKIND");
                    ii++;
                    data[i][ii] = row.getString("DATOCHECKUD");
                    ii++;
                    data[i][ii] = row.getString("DATORES");
                    ii++;
                }

            } catch (SQLException e)

            {



            }
            catch(NullPointerException a)
            {

            }



        }
        public void visVærelser()
        {

        data = new Object[hentVærelse.tæller()][11];
        panelTekst = new String[11];

        panelTekst[0] = "Værelse Nr";
        panelTekst[1] = "Type";
        panelTekst[2] = "Res Nr";
        panelTekst[3] = "Status";
        panelTekst[4] = "Havudsigt";
        panelTekst[5] = "Sal";
        panelTekst[6] = "Gang Nr";
        panelTekst[7] = "Pris";
        panelTekst[8] = "Størrelse";
        panelTekst[9] = "Stil";
        panelTekst[10] = "Antal bad";

        table = new JTable(data, panelTekst);


        scrollPane = new JScrollPane(table);


        getContentPane().add(scrollPane, BorderLayout.CENTER);

        this.setEnabled(false);

        try {

        ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

        ResultSet row = db.select( "SELECT * FROM VAERELSE" );


                for(int i=0;row.next();i++)
                {
                    int ii = 0;
                    data[i][ii] = row.getString("VAERELSENR");
                    ii++;
                    data[i][ii] = row.getString("TYPEN");
                    ii++;
                    data[i][ii] = row.getString("RESNR");
                    ii++;
                    data[i][ii] = row.getString("VAERELSESTATUS");
                    ii++;
                    data[i][ii] = row.getString("HAVUDSIGT");
                    ii++;
                    data[i][ii] = row.getString("SAL");
                    ii++;
                    data[i][ii] = row.getString("STEDGANG");
                    ii++;
                    data[i][ii] = row.getString("PRIS");
                    ii++;
                    data[i][ii] = row.getString("STORRELSE");
                    ii++;
                    data[i][ii] = row.getString("STIL");
                    ii++;
                    data[i][ii] = row.getString("ANTALBAD");
                    ii++;
                }

            } catch (SQLException e)

            {



            }
            catch(NullPointerException a)
            {

            }
            this.repaint();

        }


}
Avatar billede aslan Nybegynder
10. juni 2002 - 13:59 #4
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.*;

public class Opslag extends JFrame
{


    Reservation hentRes;
    Værelse hentVærelse;

    Object[][]data;
    String[]panelTekst;

    JTable table;
    JScrollPane scrollPane;



    public Opslag(Reservation r,Værelse v)
    {


        hentRes = r;
        hentVærelse = v;


    }


        public void visRes()
        {


        data = new Object[hentRes.tæller()][8];
        panelTekst = new String[8];

        panelTekst[0] = "Res Nr";
        panelTekst[1] = "GæsteNr";
        panelTekst[2] = "VærelsesNr";
        panelTekst[3] = "Udl Start";
        panelTekst[4] = "Udl Slut";
        panelTekst[5] = "Check Ind";
        panelTekst[6] = "Check Ud";
        panelTekst[7] = "Res Dato";

        table = new JTable(data, panelTekst);

        if (scrollPane != null)
        {
          getContentPane().remove(scrollPane);
        }
        scrollPane = new JScrollPane(table);
        scrollPane.revalidate();
        getContentPane().add(scrollPane, BorderLayout.CENTER);
        table.setEnabled(false);

        this.pack();

        //table.setEnabled(false);
        //table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

        try {

        ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

        ResultSet row = db.select( "SELECT * FROM RESERVATION" );


                for(int i=0;row.next();i++)
                {
                    int ii = 0;
                    data[i][ii] = row.getString("RESNR");
                    ii++;
                    data[i][ii] = row.getString("GAESTENR");
                    ii++;
                    data[i][ii] = row.getString("VAERNR");
                    ii++;
                    data[i][ii] = row.getString("DATOUDLSTART");
                    ii++;
                    data[i][ii] = row.getString("DATOUDLSLUT");
                    ii++;
                    data[i][ii] = row.getString("DATOCHECKIND");
                    ii++;
                    data[i][ii] = row.getString("DATOCHECKUD");
                    ii++;
                    data[i][ii] = row.getString("DATORES");
                    ii++;

                }

            } catch (SQLException e)

            {



            }
            catch(NullPointerException a)
            {

            }

        }
        public void visVærelser()
        {

        data = new Object[hentVærelse.tæller()][11];
        panelTekst = new String[11];

        panelTekst[0] = "Værelse Nr";
        panelTekst[1] = "Type";
        panelTekst[2] = "Res Nr";
        panelTekst[3] = "Status";
        panelTekst[4] = "Havudsigt";
        panelTekst[5] = "Sal";
        panelTekst[6] = "Gang Nr";
        panelTekst[7] = "Pris";
        panelTekst[8] = "Størrelse";
        panelTekst[9] = "Stil";
        panelTekst[10] = "Antal bad";

        table = new JTable(data, panelTekst);


        if (scrollPane != null)
        {
          getContentPane().remove(scrollPane);
        }
        scrollPane = new JScrollPane(table);
        scrollPane.revalidate();
        getContentPane().add(scrollPane, BorderLayout.CENTER);
        table.setEnabled(false);

        this.pack();



        //table.setEnabled(false);
        //table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

        try {

        ConnectDB db = new ConnectDB( "jdbc:interbase://localhost/C:/Documents and Settings/aslan/Skrivebord/modelKomponent/HOTEL.GDB", "sysdba", "masterkey" );

        ResultSet row = db.select( "SELECT * FROM VAERELSE" );


                for(int i=0;row.next();i++)
                {
                    int ii = 0;
                    data[i][ii] = row.getString("VAERELSENR");
                    ii++;
                    data[i][ii] = row.getString("TYPEN");
                    ii++;
                    data[i][ii] = row.getString("RESNR");
                    ii++;
                    data[i][ii] = row.getString("VAERELSESTATUS");
                    ii++;
                    data[i][ii] = row.getString("HAVUDSIGT");
                    ii++;
                    data[i][ii] = row.getString("SAL");
                    ii++;
                    data[i][ii] = row.getString("STEDGANG");
                    ii++;
                    data[i][ii] = row.getString("PRIS");
                    ii++;
                    data[i][ii] = row.getString("STORRELSE");
                    ii++;
                    data[i][ii] = row.getString("STIL");
                    ii++;
                    data[i][ii] = row.getString("ANTALBAD");
                    ii++;
                }

            } catch (SQLException e)

            {



            }
            catch(NullPointerException a)
            {

            }


        }


}
Avatar billede backupmand Nybegynder
27. november 2002 - 21:03 #5
jeg har noget a la det samme problem ... jeg vil gerne forsøge at forklare det.
Jeg har en applikation, hvor der indtastes en querystring, som
overføres til en metode i en klasse, der arver fra AbstractTableModel
hvor alle de nødvendige metoder er implementeret. Når jeg fyrer min
query af har jeg lavet det således, at der på et nyt panel vises
resultatet af query'en i en JTable, som er oprettet omkring den klasse
der arver fra AbstractTableModel. Ved første visning stilles data pænt
op i tabellen, som jeg vil have det. Men gemmes denne data i cache?
Eller et andet sted?

Grunden til, at jeg spørger er at går jeg tilbage til det panel, hvor
query-strengen indtastes og indtaster en ny query og påny gerne vil
have vist resultatet på min forespørgelse vises bare data fra den første
forespørgelse og sådan fortsætter det.

Kort sagt: opdatering af JTable værdier?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester