2016-08-05 3 views
0

私はカードレイアウトを使用してパネルのリストを表示しています。パネルの1つでは、私はJTableにいくつかの列と行のレコードを持っています。 今、私は、ユーザーがログインするかによって、JTableの最初の列を削除したいの下 (ログインJFrameで)私のコードです:。他のクラスからjTable列を削除する方法

//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を使用している間は機能しません。どのようにこの作品を作るための任意のアイデアですか?

+0

「JTable」は 'JPanel'でも見えませんか?問題の詳細をご記入ください。これはあなたにも役立つかもしれない[JavaでJPanelでJTableを表示する方法](http://stackoverflow.com/a/2623987/5702956) –

+0

タイトルは、質問の最初の文と組み合わせると、コードは 'JPanel'を拡張します。その評価は正しいですか? 'paintComponent(Graphics)'メソッドをオーバーライドするときにパネルを拡張することが実際に必要なだけで、これはそのような状況には見えないので、私は尋ねます。また、モデル(例えば、テーブルモデル)は、設計が不良であるビュー(パネル)にあまりにも拘束されており、最初に修正する必要があります。 –

答えて

0

このコードは、あなたがテーブルのビューから列を削除することができ、あなたのJTable

jTable1.getColumnModel().getColumn(0).setMinWidth(0); 
jTable1.getColumnModel().getColumn(0).setPreferredWidth(0); 
jTable1.getColumnModel().getColumn(0).setMaxWidth(0); 
+1

TableColumnの幅で再生しないでください。列は依然としてビューの一部です。ユーザーがTabキーを使用して列から列に移動すると、「隠し」列にもフォーカスが得られ、ユーザーを混乱させます。 – camickr

2

中・ファースト列を非表示:

public void hideColumn(int modelColumn) 
{ 
    int viewColumn = table.convertColumnIndexToView(modelColumn); 

    if (viewColumn != -1) 
    { 
     TableColumnModel tcm = table.getColumnModel(); 
     TableColumn column = tcm.getColumn(viewColumn); 
     tcm.removeColumn(column); 
    } 
} 

このロジックの空想実現のためにどのTable Column Managerをチェックしてくださいユーザーは列を表示/非表示できます。

+0

これもうまくいかないようです.... JTableは、カードレイアウトのパネルにあります。 – Kenn

+0

@Kenn、次にあなたは何か間違っています。レイアウトマネージャは無関係です。テーブルをフレームまたはパネルに直接追加して、フレームをフレームに追加するかどうかは関係ありません。問題は "b.table1"がパネルに表示されているテーブルを参照していない可能性があります。あなたはそのような変数にアクセスしないようにコードを再構成する必要があります。私は最も簡単な解決策は、テーブルを含むクラスに "removeFirstColumn()"メソッドを追加することだと思います。次にメソッドを呼び出します。 – camickr

関連する問題