У меня есть база данных SQL, и я работаю над программой, которая позволит мне добавлять/удалять/изменять записи. Мне уже удалось добавить записи, которые я работаю над редактированием/удалением их.jTable контекстное меню правой кнопкой мыши
Я хочу отображать существующие записи в таблице, поэтому я использую jTable. Я нашел код в Интернете и изменил его, чтобы вытащить записи и отобразить их в jtable, но я не знаю, как закодировать правый клик и отобразить всплывающее меню.
В этом всплывающем меню я хочу отображать такие параметры, как удаление записи и изменение записи.
Это код, я использую сделать JTable и отображать данные:
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);
}
Я новичок в Java, поэтому запаситесь рода в ваших ответах. Спасибо всем за любую помощь!
Посмотрите на [JComponent # setComponentPopup] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setComponentPopupMenu (javax .swing.JPopupMenu)) – MadProgrammer
Это решение (аналогичный вопрос, который еще не связан здесь) работал лучше всего me: http://stackoverflow.com/a/17316876/411282 –