Trong JTable của tôi, tôi muốn đổi tên tiêu đề bảng bằng cách sử dụng tùy chọn nhấp chuột phải.trên nhấp chuột phải vào bất kỳ tiêu đề nào nó cung cấp tùy chọn đổi tên header.but khi tôi làm điều này, nó sẽ đổi tên tiêu đề của cột đã chọn . Vì vậy, tôi phải đầu tiên nhấp chuột trái vào cột đó sau đó tôi có thể tiếp tục xử lý. Có cách nào mà khi tôi nhấp chuột phải vào bất kỳ cột nào, nó cũng được chọn để sau khi đổi tên giá trị của nó được đổi tên.Đổi tên tiêu đề bảng
người nghe hành động của tôi là như sau:
int column = jTable1.getSelectedColumn();
if (column == -1) {
return;
}
if (column == 0) {
JOptionPane.showMessageDialog(jTable1, "You can not rename this column.");
return;
}
boolean blag = true;
String sColumnName = null;
while (blag) {
sColumnName = (String) JOptionPane.showInputDialog(jTable1, "Enter Column Name", "Add Column", JOptionPane.INFORMATION_MESSAGE, null, null, null);
if (sColumnName == null) {
return;
}
if (sColumnName.trim().equalsIgnoreCase("")) {
JOptionPane.showMessageDialog(jTable1, "Column name can not be blank.");
blag = true;
} else {
blag = false;
}
Vector vColumns = new Vector();
for (int i = 0; i < defaultTableModel.getColumnCount(); i++) {
vColumns.add(defaultTableModel.getColumnName(i));
}
if (vColumns.contains(sColumnName)) {
JOptionPane.showMessageDialog(jTable1, "Column name " + sColumnName + " already exist.");
return;
}
}
int viewColumn = jTable1.convertColumnIndexToView(column);
int totalColumn = defaultTableModel.getColumnCount();
Object[] headers = new Object[totalColumn];
for (int i = 0; i < totalColumn; i++) {
if (i == column) {
headers[i] = sColumnName;
} else {
headers[i] = defaultTableModel.getColumnName(i);
}
}
defaultTableModel.setColumnIdentifiers(headers);
Cảm ơn @mKorbel vì đã trả lời. – Ronak
@Ronak vui mừng được giúp bạn – mKorbel