JTable auto selection

Alles was die Programmierung mit PHP betrifft

Moderator: wegus

Antworten
spadi95
Beiträge: 3
Registriert: 22.04.2014, 10:40

JTable auto selection

Beitrag von spadi95 » 22.04.2014, 10:58

Hallo,

mein Problem ist, dass ich es nicht schaffe eine Zeile im JTable automatisch auszuwählen. Ich möchte, dass nach einem Begriff, der in einem Textfeld steht, in der Tabelle gesucht wird und diese Zeile dann markiert wird um sie dann automatisch zu editieren. Ich bin so weit gekommen dass in der Tablle der Begriff im Textfeld gefunden wird und ich die Zeilennummer dann habe. Jedoch bekomme ich es nicht hin diese dann automatisch zu markieren. Wenn ich in der Tabelle die Spieler eingefügt habe muss wenn ich die Zwei Spieler in die Textfelder eingebe und Gewonnen auswähle bei einem Spieler 2 punkte und bei dem anderen keine dazugegeben werden. Wenn ich jedoch unentschieden ausgewählt habe dann soll ein Punkt für jeden hinzuaddiert werden. Jedoch kann man die Zeile nur editieren wenn man sie ausgewählt hat. HIIIIILFE! :?

Code: Alles auswählen

          
package panel;

import javax.swing.table.DefaultTableModel;


public class JPanel extends javax.swing.JFrame {

    DefaultTableModel model;   
    public Mitglieder mNeu;
    public Verwaltung verwaltung;
    int punkte = 0;

        
    public JPanel() {
        initComponents();
         verwaltung = new Verwaltung(10);
          model = (DefaultTableModel)tblAusgabeSP.getModel();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        btnGrp = new javax.swing.ButtonGroup();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel1 = new javax.swing.JPanel();
        cmdEinfügenSP = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        txtNameSP = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        txtVorNameSP = new javax.swing.JTextField();
        jLabel3 = new javax.swing.JLabel();
        txtGebSP = new javax.swing.JTextField();
        txtJugendSP = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane2 = new javax.swing.JScrollPane();
        tblAusgabeSP1 = new javax.swing.JTable();
        jPanel3 = new javax.swing.JPanel();
        jLabel4 = new javax.swing.JLabel();
        txtSpieler1SP = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        txtSpieler2SP = new javax.swing.JTextField();
        btnGewonnen1SP = new javax.swing.JRadioButton();
        btnGewonnen2SP = new javax.swing.JRadioButton();
        btnUnentschiedenSP = new javax.swing.JRadioButton();
        jButton1 = new javax.swing.JButton();
        jScrollPane3 = new javax.swing.JScrollPane();
        tblAusgabeSP = new javax.swing.JTable();
        jLabel6 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel1.setBackground(new java.awt.Color(255, 204, 204));
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(""));

        cmdEinfügenSP.setText("Einfügen");
        cmdEinfügenSP.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cmdEinfügenSPActionPerformed(evt);
            }
        });

        jLabel1.setText("Name:");

        jLabel2.setText("Geburtsjahr:");

        jLabel3.setText("Vorname:");

        jLabel7.setText("Jugend:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(43, 43, 43)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(cmdEinfügenSP, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1)
                            .addComponent(jLabel2)
                            .addComponent(jLabel3)
                            .addComponent(jLabel7))
                        .addGap(46, 46, 46)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(txtVorNameSP, javax.swing.GroupLayout.DEFAULT_SIZE, 166, Short.MAX_VALUE)
                            .addComponent(txtNameSP)
                            .addComponent(txtGebSP)
                            .addComponent(txtJugendSP))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addGap(28, 28, 28)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(txtNameSP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(txtVorNameSP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtGebSP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtJugendSP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel7))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(cmdEinfügenSP)
                .addGap(19, 19, 19))
        );

        jTabbedPane1.addTab("Mitglieder", jPanel1);

        tblAusgabeSP1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nachname:", "Vorname:", "GeburtsJahr", "Jugend:", "Punkte:"
            }
        ));
        tblAusgabeSP1.setToolTipText("");
        jScrollPane2.setViewportView(tblAusgabeSP1);

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 2, Short.MAX_VALUE))
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(50, Short.MAX_VALUE))
        );

        jTabbedPane1.addTab("Ausgabe", jPanel4);

        jLabel4.setText("Spieler1:");

        jLabel5.setText("Spieler2:");

        btnGrp.add(btnGewonnen1SP);
        btnGewonnen1SP.setText("Gewonnen!");

        btnGrp.add(btnGewonnen2SP);
        btnGewonnen2SP.setText("Gewonnen!");

        btnGrp.add(btnUnentschiedenSP);
        btnUnentschiedenSP.setText("Unentschieden!");

        jButton1.setText("Abschicken!");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        tblAusgabeSP.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Nachname:", "Vorname:", "GeburtsJahr", "Jugend:", "Punkte:"
            }
        ));
        tblAusgabeSP.setToolTipText("");
        jScrollPane3.setViewportView(tblAusgabeSP);

        jLabel6.setText("vs");

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 2, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                        .addComponent(jLabel4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jLabel6)
                        .addGap(61, 61, 61)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(txtSpieler2SP, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel5))
                        .addGap(119, 119, 119))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(txtSpieler1SP, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(jPanel3Layout.createSequentialGroup()
                                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jButton1)
                                    .addGroup(jPanel3Layout.createSequentialGroup()
                                        .addComponent(btnGewonnen1SP)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(btnUnentschiedenSP)))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(btnGewonnen2SP)))
                        .addGap(110, 110, 110))))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGap(19, 19, 19)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jLabel5)
                    .addComponent(jLabel6))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(txtSpieler1SP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtSpieler2SP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(6, 6, 6)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnGewonnen2SP)
                    .addComponent(btnUnentschiedenSP)
                    .addComponent(btnGewonnen1SP))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 111, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane1.addTab("Spiel", jPanel3);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 459, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(293, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 269, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(344, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void cmdEinfügenSPActionPerformed(java.awt.event.ActionEvent evt) {                                              
       
       mNeu = new Mitglieder (txtNameSP.getText(), txtVorNameSP.getText(),Integer.parseInt(txtGebSP.getText()),txtJugendSP.getText(), punkte);
       model.insertRow(model.getRowCount(), new Object[]{txtNameSP.getText(), txtVorNameSP.getText(),txtGebSP.getText(), txtJugendSP.getText(), punkte});
       txtNameSP.setText("");     
       txtVorNameSP.setText(""); 
       txtGebSP.setText(""); 
       txtJugendSP.setText(""); 
                
    }                                             

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
       int gewonnen1SP;
       int gewonnen2SP;
        if(btnGewonnen1SP.isSelected())
        {
        gewonnen1SP = 2;
        }
       else{
        gewonnen1SP = 0;  
       }
       if(btnGewonnen2SP.isSelected())
        {
        gewonnen2SP = 2;
        }
       else{
        gewonnen2SP = 0;  
       }
       
       int i = 0;
       String tausgabe;
       if(btnUnentschiedenSP.isSelected()){
       int btnUnentschieden = 1;
       model.setValueAt(btnUnentschieden,tblAusgabeSP.getSelectedRow(),4) ; 
       }
       else{
       for(i=0; i < tblAusgabeSP.getRowCount(); i++)
       {
       tausgabe = ""+model.getValueAt(i, 0);
       if(tausgabe.equals(txtSpieler1SP.getText())) 
       {
        int zahl = tblAusgabeSP.getSelectedRow();
      // tblAusgabeSP.setRowSelectionInterval(zahl,zahl);
       model.setValueAt(gewonnen1SP,tblAusgabeSP.getSelectedRow(),4) ; 
       }
       }
       for(i=0; i < tblAusgabeSP.getRowCount(); i++)
       {
       tausgabe = ""+model.getValueAt(i, 0);
       if(tausgabe.equals(txtSpieler2SP.getText())) 
       {
        int zahl = tblAusgabeSP.getSelectedRow();
      // tblAusgabeSP.setRowSelectionInterval(zahl,0);
       model.setValueAt(gewonnen2SP,tblAusgabeSP.getSelectedRow(),4) ; 
       }
       }
       }
    }                                        
                          
Dateianhänge
Zwischenablage02.jpg
Hier sieht man wie die Ausgabe aussieht
Zwischenablage02.jpg (11.86 KiB) 4099 mal betrachtet

Benutzeravatar
Tux1000
Beiträge: 264
Registriert: 05.04.2008, 16:09

Re: JTable auto selection

Beitrag von Tux1000 » 03.05.2014, 11:11

Wenn du die Row-Nummer (rowNumber) schon hast, müsstest du einfach mit

Code: Alles auswählen

table.getSelectionModel().setSelectionInterval(rowNumber, rowNumber);
die gewünschte Zeile markieren können.
Evtl muss du noch mit convertRowIndexToView bzw convertRowIndexToModel arbeiten.

Gruß

Antworten