Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


jTable?

Postades av 2008-02-06 16:09:42 - Ander Andersson, i forum java, Tråden har 7 Kommentarer och lästs av 1691 personer


Hej

Jag vill presentera data från databasen i jTable som jag skapat i NetBeans ID 6. med hjälp av knappklickning. så här långt har jag kommet:




private void HamtaPersoner() {
        
 try {  
           Object[][] data; 
            
            Class.forName("com.mysql.jdbc.Driver");
            String connectionUrl = "jdbc:mysql://localhost/Personer?" + 
                                   "user=XXXX&password=XXXXXXXX";
            Connection con = DriverManager.getConnection(connectionUrl);
            Statement stmt = null;
            ResultSet rs = null;
            

            String SQL = "SELECT perID,namn FROM person order by perID";
            stmt = con.createStatement();
            rs = stmt.executeQuery(SQL);
            
       
            while (rs.next()) {  
             
              int perID = rs.getInt(1);
              String namn = rs.getString(2);
              data = new Object[perID][2] ;  // det är 2 kolumnar i jTable1
              
              
		skriv ut data i jTable1 ...........?
	      }

           
           } catch (SQLException e) {
                    System.out.println("SQL Exception: "+ e.toString());
                } catch (ClassNotFoundException cE) {
                    System.out.println("Class Not Found Exception: "+ cE.toString());
                }
         
         
     }





Svara

Sv: jTable?

Postades av 2008-02-06 20:48:19 - Tom Granqvist

Jag kunde ha förklarat lite mera i förra svaret. De flesta Swing-komponenterna (JList, JTable, JComboBox...) är uppbyggda enligt ett designmönster kallat Model-View-Controller, MVC. Kort sagt är Model den del som hanterar datat, View presenterar datat och Controller koordinerar det hela.

I ditt fall med JTable är View:n det som visas på skärmen, med tabellhuvud, rader osv. Controllern är eventuella lyssnare du lagt till till tabellen.
Den kvarstående delen, modellen, är det du vill åstadkomma. Det enklaste sättet är att skapa den typ:

Vector cols = new Vector();
cols.add("id");
cols.add("namn");

Vector rows = new Vector();
// Din SQL-kod här

Vector v;
while (rs.next()) {
    v = new Vector();
    v.add(rs.getInt(1));
    v.add(rs.getString(2));
    rows.add(v);
}
JTable table = new JTable(rows, cols);


Då skapas automatiskt en DefaultTableModel, och din JTable byggs runt denna. Du hämtar alltså personerna från databasen, lägger dem i en Vector med Vectors och skickar dem till konstruktorn.

Ett annat sätt är att skriva en klass som antingen ärver av DefaultTableModel eller implementerar interfacet TableModel.

Suns tutorial om JTable tar upp båda sätten: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html


Svara

Sv:jTable?

Postades av 2008-02-07 00:32:38 - Ander Andersson


Hej!

Tack för svaret. Jag har försökt att lösa detta problem men lyckades inte. Jag vill ha din lösning med det. en hel klass...

Tack!


MVH
/Ander


Svara

Sv: jTable?

Postades av 2008-02-07 01:55:54 - Tom Granqvist

Visa den kod du har fått ihop på egen hand, så fixar vi den tillsammans.


Svara

Sv:jTable?

Postades av 2008-02-07 13:48:15 - Ander Andersson

Här Lite koda:



package person;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class JTableExample1 extends javax.swing.JFrame {

public JTableExample1(JTable table) {
        initComponents();
        
        
        
        try {  
            table1 = new DefaultTableModel();
            
            Class.forName("com.mysql.jdbc.Driver");
            String connectionUrl = "jdbc:mysql://localhost/personer?" + 
                                   "user=root&password=password";
            Connection con = DriverManager.getConnection(connectionUrl);
            Statement stmt = null;
            ResultSet rs = null;
            
            
            
            Vector cols = new Vector();
            cols.add("id");
            cols.add("namn");
            
            //SQL query command
            String SQL = "SELECT * FROM person order by perID";
            stmt = con.createStatement();
            rs = stmt.executeQuery(SQL);
            
            
            
            Vector rows = new Vector();
            Vector v;

            while (rs.next()) { 
                v = new Vector();
                v.add(rs.getInt(1));
                v.add(rs.getString(2));
                rows.add(v);

             }    
              table = new JTable(rows, cols);
              
            
              
                
                } catch (SQLException e) {
                    System.out.println("SQL Exception: "+ e.toString());
                } catch (ClassNotFoundException cE) {
                    System.out.println("Class Not Found Exception: "+ cE.toString());
                }  
        }

	public static void main(String args[]) {

              
            }

    	 
        
        
    

// Variables declaration - do not modify                     
    	private javax.swing.JPanel jPanel1;
    	private javax.swing.JScrollPane jScrollPane1;
    	private javax.swing.JTable jTable1;
    	// End of variables declaration 


}


Svara

Sv: jTable?

Postades av 2008-02-07 14:35:02 - Tom Granqvist

Först: på vilket vis fungerar det inte? Får du något felmeddelande?

Några kommentarer:
1. Du skapar aldrig en instans av JTableExample1 i main-metoden.
2. Du lägger aldrig till den skapade JTable, komponenten till din JFrame.
3. Du sätter aldrig din JFrame synlig. Gör det med pack och setVisible metoderna.
4. Konstruktorn JTableExample1 tar en JTable som parameter. Varför?
5. Du sätter table1 till en ny DefaultTableModel. Det är onödigt. Dessutom är inte table1 deklarerad alls.

Annars ser det bra ut. Pröva göra ändringarna ovan och testa sedan.


Svara

Sv:jTable?

Postades av 2008-02-08 13:21:41 - Ander Andersson


Jag skickade en kod som var väldigt tunn, men efter jag har läst dina kommentarer, har jag löst problemmet så här:



package skivsamling;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;

public class JTableExample1 extends javax.swing.JFrame {
     private DefaultTableModel model;

public JTableExample1() {
        initComponents();
        model = new DefaultTableModel();
        jTable1.setModel( model );
        
        try {  
            
            String[] names = {"PersonID", "Namn"};
            Vector colNames = new Vector();
            colNames.addAll(Arrays.asList(names));
            
            String connectionUrl = "jdbc:mysql://localhost/personer?" + 
                                   "user=root&password=password";

            Connection con = DriverManager.getConnection(connectionUrl);
            Statement stmt = null;
            ResultSet rs = null;
            
            
            Vector cols = new Vector();
            cols.add("id");
            cols.add("namn");
            
            //SQL query command
            String SQL = "SELECT * FROM person order by perID";

            stmt = con.createStatement();
            rs = stmt.executeQuery(SQL);
            

            Vector rows = new Vector();
            Vector v;

            while (rs.next()) { 
                v = new Vector();
                v.add(rs.getInt(1));
                v.add(rs.getString(2));
                rows.add(v);
                model.setDataVector(rows, colNames);
             }    

                } catch (SQLException e) {
                    System.out.println("SQL Exception: "+ e.toString());
                } catch (ClassNotFoundException cE) {
                    System.out.println("Class Not Found Exception: "+ cE.toString());
                }  
        
        
        
    }  


public static void main(String args[]) {
       JTableExample1 visatabell = new JTableExample1();
             visatabell.setVisible( true );
            }




 // Variables declaration - do not modify
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTable jTable1;
    // End of variables declaration



}





Jag är ny i java, jag kör mest ASP.NET

Jag vill tacka dig mycket för hjälpen




Svara

Sv: jTable?

Postades av 2008-02-10 22:45:22 - Tom Granqvist

Bra att det löste sig! Roligt att kunna hjälpa till :)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
608
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies