Ich verwende ein Cardlayout, um eine Liste der Panels anzuzeigen. In einem der Panels habe ich eine JTable
mit mehreren Spalten und Zeilen von Datensätzen. Nun möchte Ich mag die erste Spalte der JTable
entfernen, je nachdem, welcher Benutzer sich anmeldet Below mein Code (im Login-JFrame
.):So entfernen Sie eine jTable-Spalte aus einer anderen Klasse, in 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);
Das Problem ist: Es funktioniert gut, wenn Verwenden Sie eine JFrame
, um die Tabelle anzuzeigen, aber nicht funktioniert, während JPanel
verwenden, um die gleiche Tabelle anzuzeigen. Irgendeine Idee, wie das funktioniert?
Ist die 'JTable' auf dem' JPanel' nicht sichtbar? Bitte geben Sie weitere Details zu Ihrem Problem an. Vielleicht könnte dir das auch helfen [Wie man eine JTable in einem JPanel mit Java anzeigt?] (Http://stackoverflow.com/a/2623987/5702956) –
Der Titel kombiniert mit den ersten Sätzen deiner Frage deutet darauf hin, dass die Code 'erweitert JPanel'. Ist diese Einschätzung richtig? Ich frage, weil Erweiterungspanel wirklich nur notwendig ist, wenn man die 'paintComponent (Graphics)' Methode überschreibt, und das scheint nicht so zu sein. Auch, dass das Modell (z. B. ein Tischmodell) zu sehr an die Ansicht (die Paneele) gebunden ist, wo dies ein schlechtes Design ist und zuerst fixiert werden sollte. –