Tôi có cơ sở dữ liệu SQL và tôi đang làm việc trên một chương trình cho phép tôi thêm/xóa/sửa đổi bản ghi. Tôi đã quản lý để thêm bản ghi tôi đang làm việc để chỉnh sửa/xóa chúng.jTable nhấp chuột phải vào trình đơn bật lên
Tôi muốn hiển thị các bản ghi hiện có trong một bảng để tôi đang sử dụng jTable. Tôi tìm thấy một số mã trực tuyến và sửa đổi nó để kéo các hồ sơ và hiển thị chúng trong một jtable nhưng tôi không biết làm thế nào để mã các rightclick và hiển thị một popup menu.
Trong trình đơn bật lên đó, tôi muốn hiển thị các tùy chọn như xóa bản ghi và sửa đổi bản ghi.
Đây là mã Tôi đang sử dụng làm cho JTable và hiển thị dữ liệu:
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);
}
Tôi mới vào Java vì vậy hãy loại trong phản ứng của bạn. Cảm ơn tất cả các bạn trước để được hỗ trợ!
Hãy xem [JComponent # setComponentPopup] (http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setComponentPopupMenu (javax .swing.JPopupMenu)) – MadProgrammer
Giải pháp này (câu hỏi tương tự chưa được liên kết ở đây) hoạt động tốt nhất cho tôi: http://stackoverflow.com/a/17316876/411282 –