Java - Jframe - Jtable

Status
Niet open voor verdere reacties.

Mortj

Gebruiker
Lid geworden
29 sep 2007
Berichten
6
Beste,

Ik ben al een tijd bezig met een tabel, maar ik kom er maar niet uit.

Ik wil een Tabel in een Frame. Deze tabel moet de waarden halen uit een database.
De connectie etc is verder geen probleem.

Ik heb al een Frame met daarin meerdere tekstvelden en knopjes.
Deze code is erg lang en post ik alleen op aanvraag.

Heeft iemand enige idee?


Alvast bedankt,
 
Het is wel handig om te zien wat je al hebt.
Ook graag de foutmeldingen erbij vermelden welke je krijgt.

Als je de code tussen
Code:
 en
tags zet, dan krijg je een mooi scrollbalkje in je post.
 
Ik heb al wat dingen geprobeerd maar dat mocht niet baten.
Vervolgens had ik alles eruit gehaald en hier een post gemaakt.

Ik heb dus niet echt foutmeldingen meer ;) Mijn code hieronder.
Ik wil graag weten waar ik al die delen code's tussen moet zetten.

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.JTable.*;

public class frameBT extends JFrame
{

 JPanel contentPane;
 JButton sluiten1 = new JButton("Applicatie afsluiten");




public frameBT()
  {
  try
    {
    jbInit();
    }
  catch (Exception e)
    {
    e.printStackTrace();
    }
  }


public void jbInit() throws Exception
  {


  contentPane = (JPanel)this.getContentPane();
  contentPane.setLayout(null);
  this.setSize(new Dimension(1024, 800));
  this.setTitle("Behandeling toevoegen");

  sluiten1.addActionListener(new sluiten1Handler());
  sluiten1.setBounds(new Rectangle(800, 610, 180, 20));
  contentPane.add(sluiten1);

  }


class sluiten1Handler implements ActionListener
  {
  public void actionPerformed(ActionEvent e)
    {
    System.exit(0);
    }
  }
}

Knopjes, etc werkt allemaal, ik heb hier en daar wat geknipt.

Nogmaals, ik wil dus een tabel hebben in 1 frame, waar dus ook nog andere tekstvelden instaan, knopjes te zien zijn.
 
Ik heb mij er zelf nog niet zo erg in verdiept.
Je zou met zoiets denk ik wel een stukje verder kunnen:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.JTable.*;


public class frameBT extends javax.swing.JFrame {
    
    private JTable tabel;
    
    private JPanel contentPane;
    private JButton sluiten1 = new JButton("Applicatie afsluiten");
    /** Creates new form frameBT */
    public frameBT() {
        initComponents();
        {
            try {
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

public void jbInit() throws Exception {
        
        
        contentPane = (JPanel)this.getContentPane();
        contentPane.setLayout(null);
        this.setSize(new Dimension(1024, 800));
        this.setTitle("Behandeling toevoegen");
        
        sluiten1.addActionListener(new sluiten1Handler());
        sluiten1.setBounds(new Rectangle(800, 610, 180, 20));
        contentPane.add(sluiten1);
        
        //Object[][] rowDate = hier met de connectie alle info over de rijen ophalen;
        //Object[] columnNames = hier alle kolomnamen;
        //tabel = new JTable(rowData, columnNames);
        tabel = new JTable(5,1);
        tabel.setBounds(0,0,100, 100);
        contentPane.add(tabel);
        
        
    }

Ik krijg zo linksboven een tabel te zien met 5 rijen en 1 kolom.
Wat jij moet hebben is denk ik hetgene wat er boven ge-comment staat.
Eerst dus de data van de rijen en de kolomnamen ophalen en vervolgens een nieuwe JTable aanmaken met die gegevens.
 
Bedankt Killermenace,

Het is me al wat duidelijker geworden. Ik weet nog niet precies hoe ik die data dan uit de database krijg ik mijn tabel, dus ik wou eerst vaste waarden geven. Maar dat lukt ook nog niet helemaal. Hieronder wat ik tot nu toe heb.

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import javax.swing.JTable.*;


public class frameBT extends javax.swing.JFrame


{
  JTable tabel;

    private JPanel contentPane;

    private JButton sluiten1 = new JButton("Applicatie afsluiten");
    /** Creates new form frameBT */
    public frameBT() {
       // initComponents();
        {
            try {
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

public void jbInit() throws Exception {



        contentPane = (JPanel)this.getContentPane();
        contentPane.setLayout(null);
        this.setSize(new Dimension(1024, 800));
        this.setTitle("Behandeling toevoegen");

  //      sluiten1.addActionListener(new sluiten1Handler());
   //     sluiten1.setBounds(new Rectangle(800, 610, 180, 20));
    //    contentPane.add(sluiten1);

  String[] Names = {"First Name",
                        "Last Name",
                        "Sport",
                        "# of Years",
                        "Vegetarian"};

   Object[][] Data = {
       {"Mary", "Campione",
        "Snowboarding", new Integer(5), new Boolean(false)},
       {"Alison", "Huml",
        "Rowing", new Integer(3), new Boolean(true)},
       {"Kathy", "Walrath",
        "Knitting", new Integer(2), new Boolean(false)},
       {"Sharon", "Zakhour",
        "Speed reading", new Integer(20), new Boolean(true)},
       {"Philip", "Milne",
      "Pool", new Integer(10), new Boolean(false)}};

        tabel = new JTable(Data, Names);
        tabel = new JTable(2,5);
        tabel.setBounds(0,0,200, 200);

        contentPane.add(tabel);

    }
  }

Ik krijg nu een tabel te zien maar zonder inhoud.
Ook zou ik nog graag willen weten hoe ik die cellen groter kan maken.
 
Deze moet eruit:
Code:
tabel = new JTable(2,5);
Want daarmee maak je de tabel weer opnieuw aan ;)
Was ik zelf misschien even niet al te duidelijk over geweest :o
 
Laatst bewerkt:
aah, stom! :cool:

Het is gelukt, tabel staat mooi in mijn frame met inhoud.

Dan nu echt DE uitdaging, hoe krijgen we de informatie uit de database in de tabel om vervolgens weer opnieuw wegteschrijven naar de database.

Ik heb hier en daar wat geprobeerd:
In een knop Handler met een String geprobeerd. Maar hij maakt nu eerst de tabel aan en haalt dan niet de String op. Dus dat loopt nog even niet lekker.

Misschien weet iemand anders iets?
Het is dus de bedoeling dat ik hele rijen uit mijn database in een tabel krijg, die vervolgens kan aanpassen en weer opslaan.

Nogmaals, Bedankt :thumb:
 
Kan je al wel data in een String krijgen?
Kan je proberen uit te vinden door een
Code:
System.out.println(deString);
Want als je het wel in de string krijgt, dan kan je de rest er denk ik ook wel uit krijgen.
 
Het is nu nog niet gelukt, even een vraagje over Metadata.

Zodra we het met strings doen, moet ik alle cellen in die tabel zo instellen.
Volgens mij kan dit ook sneller gaan?

Iets met Metadata?

Code:
    st = conn.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM survey");

    ResultSetMetaData rsMetaData = rs.getMetaData();

    int numberOfColumns = rsMetaData.getColumnCount();
    System.out.println("resultSet MetaData column Count=" + numberOfColumns);

    for (int i = 1; i <= numberOfColumns; i++) {
      System.out.println("column MetaData ");
      System.out.println("column number " + i);

Ik heb verder geen idee hoe dat werkt, dus ben nog bezig met informatie verzamelen.
Misschien dat jullie iets weten.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan