Переименование, а затем добавление столбца сдвигает переименованный столбец до конца и меняет имя на «Ljava.lang.String: @ ...». Почему? - PullRequest
0 голосов
/ 28 мая 2019

Я создаю таблицу, в которой пользователь может изменять заголовки, добавлять столбцы и т. Д. В соответствии со своей волей, но проблема возникает, когда пользователь добавляет новый столбец в таблицу.Недавно отредактированный столбец заканчивается до конца, и в его заголовке отображается текст, такой как "Ljava.lang.String: @ ...", где "..." = некоторые буквы и цифры.

public class StudentsStats {

  static JFrame frame = new JFrame("StudentsStats");
  static String data[][] = {};
  static String row[] = {"Sr.No","Adm.No","Name", "","","","","","","","",""};
  static DefaultTableModel model = new DefaultTableModel(data, row);
  static JTable table = new JTable(model);
  static TableColumn tabCol;

  public static void tableView(){
     JScrollPane pane = new JScrollPane(table);
     JTableHeader header = table.getTableHeader();
     TableColumnModel colModel = header.getColumnModel();
     header.addMouseListener(new MouseAdapter(){
     public void mouseClicked(MouseEvent e){
        if(e.getClickCount() == 2){
        int col = colModel.getColumnIndexAtX(e.getX());
        tabCol = colModel.getColumn(col);
        String str = JOptionPane.showInputDialog("Enter a name for this column.");
        tabCol.setHeaderValue(str);
        header.repaint();
       }
     }
   });
  frame.add(pane);
  frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setVisible(true);
 }
  public static void addcolumn(){
    String col[] = {};
    model.addColumn(col);
   }
...