Ich habe eine SQL-Datenbank und ich arbeite an einem Programm, mit dem ich Datensätze hinzufügen/löschen/ändern kann. Ich habe es bereits geschafft, Datensätze hinzuzufügen, die ich gerade bearbeite/lösche.jTable Rechtsklick-Popup-Menü
Ich möchte die vorhandenen Datensätze in einer Tabelle anzeigen, also verwende ich jTable. Ich habe einen Code online gefunden und modifiziert, um die Datensätze zu ziehen und sie in einer Jtable anzuzeigen, aber ich weiß nicht, wie man den Rechtsklick programmiert und ein Popup-Menü anzeigt.
In diesem Popup-Menü möchte ich Optionen wie Datensatz löschen und Datensatz ändern anzeigen.
Dies ist der Code, den ich die die jTable machen verwenden und die Daten anzeigen:
private void menuDeleteAuthorActionPerformed(java.awt.event.ActionEvent evt) {
TableFromDatabase deleteAuthor = new TableFromDatabase();
deleteAuthor.pack();
deleteAuthor.setVisible(true);
Vector columnNames = new Vector();
Vector data = new Vector();
try
{
Connection connection = DriverManager.getConnection(url, user, password);
// Read data from a table
String sql = "SELECT * FROM Authors";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
// Get column names
for (int i = 1; i <= columns; i++)
{
columnNames.addElement(md.getColumnName(i));
}
// Get row data
while (rs.next())
{
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++)
{
row.addElement(rs.getObject(i));
}
data.addElement(row);
}
rs.close();
stmt.close();
connection.close();
}
catch(Exception e)
{
System.out.println(e);
}
// Create table with database data
JTable table = new JTable(data, columnNames)
{
public Class getColumnClass(int column)
{
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);
if (o != null)
{
return o.getClass();
}
}
return Object.class;
}
};
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
JPanel buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
}
Ich bin neu in Java bitte in Ihrer Antwort Art so sein. Vielen Dank im Voraus für jede Hilfe!
Werfen Sie einen Blick auf die geklickt Zeile je an [JComponent # setComponentPopup] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setComponentPopupMenu (javax .swing.JPopupMenu)) – MadProgrammer
Diese Lösung (ähnliche Frage, die hier noch nicht verknüpft ist) hat am besten funktioniert Ich: http://StackOverflow.com/a/17316876/411282 –