checkbox mit allen tabllen aus datenbank befüllen

annalena

Mitglied
hallo,

wie ich schon sagte, bin ich recht neu in java..doch sowas habe ich weder in c# noch in c++ gemacht.
ich möchte alle tabellen aus einer datenbank in eine checkbox eintragen, damit ich dann eine tabelle in der box auswählen kann um mir diese datenanzusehen oder damit weiter zu arbeiten, zB in eine datei speichern oder sowas

habt ihr ne idee..
 
Zuletzt bearbeitet:

annalena

Mitglied
combo meinte ich doch :/ ;)
hab ja auch schon die ganze zeit die JComboBox benutzt :)
und da ich mit einer sybase arbeite..habe ich das hier im netz gefunden..
Code:
select name from sysobjects where type= 'U'
und das funktioniert auch ganz gut ^^
jetzt muss ich die tabellen in meine combobox schreiben oO
mit asp.net und c# recht einfach..aber in java? oO

das heisst ich muss das obere sql statement mit dem hier verknüpfen

Java:
resultSet = stmt.executeQuery("select * from tss_test..TABELLE2");
 
Zuletzt bearbeitet:

Joose

Top Contributor
jetzt muss ich die tabellen in meine combobox schreiben oO

Ist nicht so schwer. Hier ein Beispiel > http://www.java2s.com/Tutorial/Java/0240__Swing/AddItemstoJComboBox.htm

das heisst ich muss das obere sql statement mit dem hier verknüpfen

Java:
resultSet = stmt.executeQuery("select * from tss_test..TABELLE2");

Mit einem Listener reagierst du darauf ob etwas ausgewählt wurde von der ComboBox.
Dann nimmst du den Tabellennamen und "stückelst" dir dein passendes SQL zusammen.
 

LexeB4F

Mitglied
Hä? oO
Das resultSet musst du in ein Array abfüllen. Das sieht in etwa so aus:
Java:
ResultSet rs = stmt.executeQuery(sql);
            int spalten = rs.getMetaData().getColumnCount();
            setSpalte(spalten);

            // STEP 5: Extract data from result set
            String[][] str = new String[zeilen][spalten];
            int k1 = 1;
            while (rs.next()) {
                for (int k2 = 1; k2 <= spalten; k2++) {
                    str[k1 - 1][k2 - 1] = rs.getString(k2);
                }
                k1++;
            }
            setStr(str);
Achtung Code ist nicht Komplett!

Dann füllst du das Array in die Tabelle ab das sieht in etwa so aus:
Java:
new DB_ArrayAbfrage(sqlAbfrage, sqlCount);
        String[][] Pb = DB_ArrayAbfrage.getStr();

        /*    Durchsucht die Tabelle nach der ID --> while
         * Wenn gefunden;
         * wird Pb[i][....] mittels for-schleife abgefüllt in die Tabelle
         *    
         */

        int z = 0;
        for (int i = 0; i < Pb.length; i++) {

            while (Pb[i][0].equals(PbTable.Pbtable1.getValueAt(z, 0)) == false) {
                z++;
            }
            ;

            for (int y = 1; y < tagX.length + 1; y++) {
                // System.out.print(Pb[i][y] + "|");
                PbTable.Pbtable1.setValueAt(Pb[i][y], z, y + 4);
            }
            z = 0;
        }

Also schwer ist das nicht... kompliziert wir es erst wenn du die Tabelle in einer dinamischen grösse haben willst usw.

Ich hoffe ich konnte weiterhelfen.

cya
Lexe
 

annalena

Mitglied
also das hab ich nicht ganz verstanden..ich habe den code in einer anderen datei ausgelagert..die sieht dann so aus:


Java:
package com.test.j1.db_test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.sybase.jdbc4.jdbc.SybDriver;

public class SybaseDAO {

    private static Logger logger = LogManager.getLogger(SybaseDAO.class);
    Connection conn;

    public SybaseDAO() {

        String host = "kwon";
        String url = "jdbc:sybase:Tds:" + host + ":5000";
        String username = "root";
        String password = "";
        SybDriver sybDriver = null;

        sybDriver = new SybDriver();
       
        try {
            conn = DriverManager.getConnection(url, username, password);
            Statement stmt = conn.createStatement();
            rs.next();
            System.out.println(rs.getString(1));
        }

        catch (SQLException e) {
            logger.error("Can't open datebase connection", e);
        }
    }

    public List<PatAlterRow> getTableJ1() {
        ResultSet resultSet;
        boolean hasNext;
        List<PatAlterRow> resultList = new ArrayList<PatAlterRow>();
 
        try {
            Statement stmt = conn.createStatement();
                                   
            resultSet = stmt.executeQuery("select * from tss_test..MV_ERG_J1_PATALTER_2");//all tables from db: select name from sysobjects where type= 'U'
            hasNext = resultSet.next();
            try {
                while (hasNext) {
                   
                    PatAlterRow patAlterRow = new PatAlterRow(resultSet.getString(1), resultSet.getString(2), resultSet.getInt(3), resultSet.getInt(4));
                    resultList.add(patAlterRow);
                   
                    hasNext = resultSet.next();
                }
            }
            catch(SQLException e){
                logger.error("error in line");
                throw e;
            }
           
        } catch (SQLException e) {
            logger.error("Can't open datebase connection", e);
        }
        return resultList;
    }
}

und der hauptcode indem ich das fenster und die box sowie einen button ausführe ist der folgende:
Java:
package com.kvmv.j1.main;
import javax.swing.*;
import java.util.List;
import java.awt.*;
import javax.swing.JFrame;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.kvmv.j1.db_dao.PatAlterRow;
import com.kvmv.j1.db_dao.SybaseDAO;

public class Start123 {

  private static Logger logger = LogManager.getLogger(Start123.class);
   String muh2 = new String("vdsniogsrjbo");

   public static void main(String[] args) throws Exception {
     SybaseDAO sybaseDAO = new SybaseDAO();
     List<PatAlterRow> tableJ1 = sybaseDAO.getTableJ1();
       
  Runnable guiCreator = new Runnable() {
  public void run() {
     
     //window properties
  JFrame window = new JFrame( "J1" ); //initial a window
  window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); //windows shutdown order
  window.setLayout(new FlowLayout());
   
  window.setSize(180,140); //windows size in pixel
  window.setVisible(true);   //windows visibility
  window.setLocation(500, 300); //location of window (desktop coordinates)
  JLabel labTitle = new JLabel( " J1 Übungsprogramm " );
  window.add(labTitle); //add label "ueberschrift"

  JComboBox<String> choice = new JComboBox<String>();
 
  //read from database later
  choice.addItem("Quartal 1");
  choice.addItem("Quartal 2");
  choice.addItem("Quartal 3");
  choice.addItem("Quartal 4");
  window.add(choice);
  Object cbitem = choice.getSelectedItem();
  logger.info(cbitem);

  JButton button1 = new JButton("in *.csv");
  window.add(button1);
  }  
  };
  SwingUtilities.invokeLater(guiCreator);
   }
}
 

LexeB4F

Mitglied
Jetzt musst du die Liste in deine Start123 holen mit:
SybaseDAO.getTableJ1()

Und nun möchtest du diese Liste in einem .csv ausgeben?

Wenn ja, braucht du noch einen ActionListeren der dir auf den JButton "in *.csv" reagiert, der dann den export macht.
Und dies ist dann ganz eine andere Geschichte... habe ich selber auch noch nicht gemacht.
 

annalena

Mitglied
ok also mein programm hab ich jetzt dahingegen weiter entwickelt, dass sich das fenster öffnet..ich eine combobox hab, die leider eine vorauswahl an möglichkeiten gibt (ich möchte sie lieber befüllen aber das finde ich recht schweierig..) einen button der bei klicken eine datei erzeugt und dann (derzeit einen testeintrag und leider keine datenbank daten (deswegen csv)) in die datei schreibt..

ich denke mal ich muss an die combobox wie auch an meinem button einen listener dranbasteln damit ich bei wechsel in eine andere auswahl auch wirkliche diese dann selektiert ist..

also so sieht mein knopf aus

Code:
public class ButtonListener implements ActionListener {
    private JLabel field;
    public ButtonListener(JLabel field) { // constructor for buttonlistener
        this.field = field;
    }
    boolean toggle = true;

    public void actionPerformed(ActionEvent arg0) {
        FileUtil fileUtil = new FileUtil();
     
        if (toggle){ //write into file/infutre from sql string
            field.setText("wird gespeichert");
             boolean success = fileUtil.writeIntoNewFile("test.csv", "C:\\test\\", "A;B;C;D;\r\n1;2;3;4;");
        }
        else // close
            field.setText("wurde bereits gespeichert");
        toggle = !toggle;
    }
}

und nun kommt fenster / combobox / und label

Code:
Runnable guiCreator = new Runnable() {
            public void run() {
             
                JFrame window = new JFrame("J1");
                window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                window.setLayout(new FlowLayout());
             
                window.setSize(180,140);
                window.setVisible(true);  
                window.setLocation(450, 300);
                window.setResizable( false );
                JLabel field = new JLabel();
                             
                JComboBox<String> choice = new JComboBox<String>();
            
                //choice.addItem("Quartal 1");
                //choice.addItem("Quartal 2");
                //choice.addItem("Quartal 3");
                //choice.addItem("Quartal 4");
                window.add(choice);

//                Object cbitem = choice.getSelectedItem();
//                logger.info(cbitem);

                JButton button1 = new JButton("in *.csv");
                window.add(button1);
                button1.addActionListener(new ButtonListener(field));

             
                window.add(field);
            }
        };
        SwingUtilities.invokeLater(guiCreator);

wie befülle ich "einfach"? :D
und gibts eine einfache anweisung das programm zu closen
und wie kann ich sinnvolle sql statements auf die combobox legen um sie an den knopf zu leiten
 

Joose

Top Contributor
Indem du mittels deines SELECTs die Tabellennamen ausliest und diese (zum Beispiel) als Liste von Strings zurücklieferst. Jeden dieser Strings könntest du dann mittels "addItem" zu deiner ComboBox hinzufügen.
(oder du verwendest ein ComboBoxModel, siehe Dokumenation)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX CheckBox mit ChangeListener AWT, Swing, JavaFX & SWT 1
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
karlmasutra Java FX Checkbox abfragen AWT, Swing, JavaFX & SWT 2
J SceneBuilder TableView Checkbox AWT, Swing, JavaFX & SWT 1
M JAVAFX Checkbox mit URL verlinkung AWT, Swing, JavaFX & SWT 4
D JIDE TreeComboBox mit checkbox-en kombinieren AWT, Swing, JavaFX & SWT 2
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
F JTable mit Checkbox AWT, Swing, JavaFX & SWT 1
T SWT checkbox in table AWT, Swing, JavaFX & SWT 6
M JavaFX TableView mit CheckBox als Boolean AWT, Swing, JavaFX & SWT 5
Z DefaultTableModel + checkbox AWT, Swing, JavaFX & SWT 0
S Swing JTable zusätzliche Spalte mit einer Checkbox einfügen AWT, Swing, JavaFX & SWT 7
A JXTreeTable mit Checkbox AWT, Swing, JavaFX & SWT 2
P Listenelemente über Checkbox löschen AWT, Swing, JavaFX & SWT 6
D Checkbox - Datenbankausgeben AWT, Swing, JavaFX & SWT 31
A Swing JTable benutzt keine Checkbox für Booleans AWT, Swing, JavaFX & SWT 9
M Swing Dropbox / Checkbox in JTable AWT, Swing, JavaFX & SWT 3
D SWT CheckBox auslesen (Window Builder Pro) AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
T disabled Checkbox soll trotzdem Focus bekommen AWT, Swing, JavaFX & SWT 9
C Checkbox-zustände in einem JFrame speichern AWT, Swing, JavaFX & SWT 8
C SWT CheckBox AWT, Swing, JavaFX & SWT 6
B Swing DefaultTableModel, Checkbox in Spalte AWT, Swing, JavaFX & SWT 4
C Checkbox in Liste deaktivieren und paintComponent explizit aufrufen AWT, Swing, JavaFX & SWT 12
N JTable RadioButton statt Checkbox AWT, Swing, JavaFX & SWT 4
Semox Swing Random Checkbox JApplet AWT, Swing, JavaFX & SWT 14
S Checkbox AWT, Swing, JavaFX & SWT 4
Z AWT Auf bestimmte Checkbox einer Checkboxgroup zugreifen AWT, Swing, JavaFX & SWT 3
C jtable checkbox in header / spaltenüberschrift AWT, Swing, JavaFX & SWT 4
T Sprachumstellung per Checkbox, Konzeptfrage AWT, Swing, JavaFX & SWT 16
O CheckBox in Jtable - Listener darauf?? AWT, Swing, JavaFX & SWT 3
W ButtonGroup, Checkbox, A oder B oder gar nix AWT, Swing, JavaFX & SWT 3
T Checkbox in einer Tabelle AWT, Swing, JavaFX & SWT 10
G Checkbox AWT, Swing, JavaFX & SWT 7
A Checkbox-Choice Eventproblem (CMV) AWT, Swing, JavaFX & SWT 2
T Checkbox & Textfield AWT, Swing, JavaFX & SWT 5
S Checkbox oder String in JTable-Spalte AWT, Swing, JavaFX & SWT 4
L Checkbox in Tabelle AWT, Swing, JavaFX & SWT 6
G Checkbox, die eine Endlosschleife ausführt AWT, Swing, JavaFX & SWT 3
R CheckBox drücken, sodass eine Aktion ausgeführt wird AWT, Swing, JavaFX & SWT 5
F Häkchen erscheint nicht bei anklicken von Checkbox in JTable AWT, Swing, JavaFX & SWT 4
T Doppelte Abfrage eine Checkbox vermeiden AWT, Swing, JavaFX & SWT 2
F Checkbox transparent machen ? AWT, Swing, JavaFX & SWT 2
N TableModel mit CheckBox? AWT, Swing, JavaFX & SWT 5
D [JList]Checkbox einbinden ? AWT, Swing, JavaFX & SWT 3
L Checkbox in JTable (again), bei true Daten in Header AWT, Swing, JavaFX & SWT 7
F JTable mit Checkbox macht Probleme AWT, Swing, JavaFX & SWT 4
C Aktion nach Auswahl einer Checkbox AWT, Swing, JavaFX & SWT 6
W CheckBox in Jtree AWT, Swing, JavaFX & SWT 6
G Bild als Checkbox bzw gerasteten Button? AWT, Swing, JavaFX & SWT 3
J jTable + jTextarea & checkbox AWT, Swing, JavaFX & SWT 6
V CheckBox in Tabelle zeichnen AWT, Swing, JavaFX & SWT 2
D CheckBox ändert Status nur, wenn sie FocusOwner ist AWT, Swing, JavaFX & SWT 2
C commando mit checkbox AWT, Swing, JavaFX & SWT 5
T selected checkbox AWT, Swing, JavaFX & SWT 2
T Checkbox AWT, Swing, JavaFX & SWT 10
N Checkbox mit mehreren Strings belegen? AWT, Swing, JavaFX & SWT 6
F Menüs in allen Fenstern anzeigen AWT, Swing, JavaFX & SWT 12
P Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt) AWT, Swing, JavaFX & SWT 3
S Kein DnD in allen Java Applikationen AWT, Swing, JavaFX & SWT 5
K Simuliere Tastendruck, kommt nicht in allen Programmen an AWT, Swing, JavaFX & SWT 5
F KontextMenü auf allen Textfields im Frame AWT, Swing, JavaFX & SWT 2
M Swing bremst GUIs von allen Programmen aus AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben