только начинаю свои руки на Java и очень нуждается в вашей помощи. У меня есть JComboBox, который извлекает данные из базы данных и отображает их в JTable.
Моя проблема в том, что когда я выбираю Студенты , он отображает данные о Студентах, а при выборе другого варианта, например Учитель , он также отображает данные об Учителе, но он добавляется данные отображаются студентами. Интересно, как я могу отобразить данные Только для студентов и то же самое с другими.
Ниже приведен код, который я использовал. Может быть, я что-то упустил.
import javax.swing.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class VisibilityTool extends javax.swing.JFrame {
public VisibilityTool() {
initComponents();
}
//Generate
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
eMail = new javax.swing.JLabel();
comBox = new javax.swing.JComboBox();
emailText = new javax.swing.JTextField();
buttonGenerate = new javax.swing.JButton();
progressBar = new javax.swing.JProgressBar();
selectEnvironment = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
dataTable = new javax.swing.JTable();
jMenuBar1 = new javax.swing.JMenuBar();
file = new javax.swing.JMenu();
exit = new javax.swing.JMenuItem();
help = new javax.swing.JMenu();
about = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("[Trax] Data Visibility Tool");
setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
setFocusCycleRoot(false);
setForeground(java.awt.Color.black);
eMail.setBackground(new java.awt.Color(51, 51, 51));
eMail.setFont(new java.awt.Font("Lucida Bright", 1, 12)); // NOI18N
eMail.setText("E - mail address :");
comBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Select . . .", "Students", "Teachers", "Directors" }));
comBox.setToolTipText("'Choose the database to query'");
comBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comBoxActionPerformed(evt);
}
});
emailText.setToolTipText("'Put you e-mail address here'");
emailText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
emailTextActionPerformed(evt);
}
});
buttonGenerate.setText("GENERATE");
buttonGenerate.setToolTipText("'GENERATE'");
buttonGenerate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonGenerateActionPerformed(evt);
}
});
selectEnvironment.setBackground(new java.awt.Color(51, 51, 51));
selectEnvironment.setFont(new java.awt.Font("Lucida Bright", 1, 12)); // NOI18N
selectEnvironment.setText("Select Environment :");
dataTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"ID", "Name", "Surname", "Age"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
dataTable.getTableHeader().setReorderingAllowed(false);
jScrollPane1.setViewportView(dataTable);
dataTable.getColumnModel().getColumn(0).setResizable(false);
dataTable.getColumnModel().getColumn(1).setResizable(false);
dataTable.getColumnModel().getColumn(2).setResizable(false);
dataTable.getColumnModel().getColumn(3).setResizable(false);
file.setText("File");
file.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
fileActionPerformed(evt);
}
});
exit.setText("Exit");
exit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitActionPerformed(evt);
}
});
file.add(exit);
jMenuBar1.add(file);
help.setText("Help");
help.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
helpActionPerformed(evt);
}
});
about.setText("About");
about.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
aboutActionPerformed(evt);
}
});
help.add(about);
jMenuBar1.add(help);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 483, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(buttonGenerate)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(eMail, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(43, 43, 43)
.addComponent(emailText, javax.swing.GroupLayout.PREFERRED_SIZE, 325, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(selectEnvironment, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(comBox, javax.swing.GroupLayout.PREFERRED_SIZE, 325, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(selectEnvironment, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(27, 27, 27)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(eMail, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(emailText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addComponent(buttonGenerate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(19, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void comBoxActionPerformed(java.awt.event.ActionEvent evt) {
if (comBox.getSelectedItem() == "Select . . .") {
} else if (comBox.getSelectedItem() == "Students") {
DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
String sql = "select * from students";
try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(tests.class.getName()).log(Level.SEVERE, null, ex);
}
Connection connect = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/datavisibility","root","");
Statement statmnt = connect.createStatement();
ResultSet rslt = statmnt.executeQuery(sql);
while(rslt.next()){
String id = rslt.getString("ID");
String name = rslt.getString("Name");
String surname = rslt.getString("Surname");
String age = rslt.getString("Age");
model.addRow(new Object[]{id,name,surname,age});
}
} catch(SQLException e){
e.printStackTrace();
}
} else if (comBox.getSelectedItem() == "Teachers"){
DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
String sql = "select * from teachers";
try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(tests.class.getName()).log(Level.SEVERE, null, ex);
}
Connection connect = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/datavisibility","root","");
Statement statmnt = connect.createStatement();
ResultSet rslt = statmnt.executeQuery(sql);
while(rslt.next()){
String id = rslt.getString("ID");
String name = rslt.getString("Name");
String surname = rslt.getString("Surname");
String age = rslt.getString("Age");
model.addRow(new Object[]{id,name,surname,age});
}
} catch(SQLException e){
e.printStackTrace();
}
} else if (comBox.getSelectedItem() == "Directors") {
DefaultTableModel model = (DefaultTableModel) dataTable.getModel();
String sql = "select * from directors";
try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(tests.class.getName()).log(Level.SEVERE, null, ex);
}
Connection connect = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/datavisibility","root","");
Statement statmnt = connect.createStatement();
ResultSet rslt = statmnt.executeQuery(sql);
while(rslt.next()){
String id = rslt.getString("ID");
String name = rslt.getString("Name");
String surname = rslt.getString("Surname");
String age = rslt.getString("Age");
model.addRow(new Object[]{id,name,surname,age});
}
} catch(SQLException e){
e.printStackTrace();
}
}
}
Большое спасибо за вашу помощь.