Я использую cardlayout для отображения списка панелей. В одной из панелей у меня есть JTable
с несколькими столбцами и строками записей. Теперь я хотел бы, чтобы удалить первый столбец JTable
, в зависимости от того, какого пользователя в Ниже мой код (в логине JFrame
):.Как удалить столбец jTable из другого класса, в java
//calling the jframe that holds the cardlayout
Home home= new Home();
//calling the panel that holds the jtable
viewRecords b =new viewRecords();
//when a user logs in
//removing the 1st column of the jtable in panel viewRecords
b.jTable1.removeColumn(b.jTable1.getColumnModel().getColumn(0));
//displaying jFrame Home
Home.setVisible(true);
Проблема в том, что хорошо работает, когда используя JFrame
для отображения таблицы, но не работает при использовании JPanel
для отображения той же таблицы. Любая идея о том, как сделать эту работу?
Является ли 'JTable' даже не видимым на' JPanel'? Просьба представить дополнительную информацию о вашей проблеме. Возможно, это тоже может вам помочь. [Как отобразить JTable в JPanel с Java?] (Http://stackoverflow.com/a/2623987/5702956) –
Название в сочетании с первыми предложениями вашего вопроса подсказывает мне, что код 'extends JPanel'. Правильно ли эта оценка? Я спрашиваю, потому что расширение панели действительно необходимо только при переопределении метода paintComponent (Graphics), и это не похоже на эту ситуацию. Также, что модель (например, модель таблицы) слишком привязана к виду (панелям), где это плохой дизайн, и его следует сначала зафиксировать. –