2017-05-30 6 views
0

Ich entwickle Hotel Reservierung Anwendung mit Swing.Wie können andere Zeilen in einer JTable angezeigt werden, wenn eine Zeile ausgewählt ist?

Ich habe eine Liste der Zimmer in JTable Zeilen. Wenn ich auf eine Zeile klicke, wird das ausgewählte Zimmer zu einer Reservierung, wenn der Benutzer dieses Zimmer für bestimmte Daten gebucht hat. Wenn jemand danach versucht, denselben Raum für dasselbe Datum zu buchen, muss er eine Warnmeldung anzeigen oder wie kann ich diese Zeile aus der Tabelle ausblenden?

import javax.swing.*; 
/** 
* 
* @author ssn 
*/ 
public class Reservation extends javax.swing.JFrame { 

    /** 
    * Creates new form Reservation 
    */ 
    public Reservation() { 
     initComponents(); 
    } 
    /** 
    * This method is called from within the constructor to initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is always 
    * regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jPanel2 = new javax.swing.JPanel(); 
     jPanel1 = new javax.swing.JPanel(); 
     jLabel2 = new javax.swing.JLabel(); 
     jLabel3 = new javax.swing.JLabel(); 
     jLabel4 = new javax.swing.JLabel(); 
     RentPerDay = new javax.swing.JTextField(); 
     BedType = new javax.swing.JTextField(); 
     RoomNo = new javax.swing.JTextField(); 
     RoomType = new javax.swing.JTextField(); 
     jLabel5 = new javax.swing.JLabel(); 
     jLabel6 = new javax.swing.JLabel(); 
     jLabel7 = new javax.swing.JLabel(); 
     jLabel8 = new javax.swing.JLabel(); 
     jLabel9 = new javax.swing.JLabel(); 
     jLabel10 = new javax.swing.JLabel(); 
     jLabel11 = new javax.swing.JLabel(); 
     jButton1 = new javax.swing.JButton(); 
     jLabel12 = new javax.swing.JLabel(); 
     jLabel13 = new javax.swing.JLabel(); 
     jLabel14 = new javax.swing.JLabel(); 
     jLabel15 = new javax.swing.JLabel(); 
     jLabel16 = new javax.swing.JLabel(); 
     jLabel17 = new javax.swing.JLabel(); 
     jButton2 = new javax.swing.JButton(); 
     jTextField1 = new javax.swing.JTextField(); 
     jTextField2 = new javax.swing.JTextField(); 
     jTextField3 = new javax.swing.JTextField(); 
     jTextField7 = new javax.swing.JTextField(); 
     jTextField8 = new javax.swing.JTextField(); 
     jTextField9 = new javax.swing.JTextField(); 
     NoOfdays = new javax.swing.JTextField(); 
     jTextField11 = new javax.swing.JTextField(); 
     jComboBox1 = new javax.swing.JComboBox<>(); 
     jComboBox2 = new javax.swing.JComboBox<>(); 
     jComboBox3 = new javax.swing.JComboBox<>(); 
     jLabel1 = new javax.swing.JLabel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

     jPanel2.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

     jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

     jLabel2.setText("RESERVATION OF ROOM"); 
     jPanel1.add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 800, 20)); 

Sie über die Codierung sich nicht, mich einfach teilen, wie das Ding tun

+1

Okay, was ist dein Problem/welche Frage hast du und wie unterstützt du den Code? – MadProgrammer

+0

* "Sie interessieren sich nicht für die Kodierung .." * Ich sorge mich so sehr über "die Kodierung", wie Sie sich für eine Lösung interessieren. Wie sehr interessiert es dich, eine Antwort zu bekommen? Aber um das etwas zu korrigieren, nicht so sehr die "Codierung" als MVCE/SSCCE. ** Um eine bessere Hilfe zu erhalten, veröffentlichen Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/). ** Beachten Sie, dass dies mit einem ['RowSorter'] erreicht werden kann. (https://docs.oracle.com/javase/8/docs/api/javax/swing/RowSorter.html) (das auch als ** row * filter *** fungiert). –

+0

ich muss mehr klären. Wenn ich eine Zeile ausblenden muss, muss ich diesen Datensatz in der Datenbank speichern? . Wie verbinde ich diese Details in der Datenbank? – rajesh

Antwort

2

Zuhörer in einer JTable Verwendung für Zeilenauswahl zu erstellen:

yourJTable.getSelectionModel().addListSelectionListener(e -> { 
    public void valueChanged(ListSelectionEvent e) { 
      ListSelectionModel lsm = (ListSelectionModel) e.getSource(); 
    } 
}); 

Sie können in diesem Hörer Überprüfen Sie, ob das ausgewählte Zimmer gebucht ist und senden Sie es an die Reservierung.

Um die Zeile JTable auszublenden, sollten Sie die Filterung verwenden, wie unter in the tutorial erläutert.

+1

Glückliche 1K rep. :) Dieser letzte Reputationspunkt, den Sie brauchten, wurde mit dem Vorschlag der Methode, die Zeilen zu filtern, gut verdient. –

+0

(e-> das macht Fehler ... wie ich es korrigiere – rajesh

+0

Ersetzen 'e ->' mit String 'neue ListSelectionListener()' –

Verwandte Themen