JTable auto selection

Alles was die Programmierung mit PHP betrifft

Moderator: wegus

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

JTable auto selection

Beitragvon 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) 3423 mal betrachtet

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

Re: JTable auto selection

Beitragvon 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ß


Zurück zu „NetBeans PHP - Programmierung“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste