テーブルがカバーしている幅をJpanel上で増やしたいと思います。Java GUIテーブルの長さを固定します
JFrame jf = new JFrame();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setTitle("Person Table");
jf.setSize(1100, 700);
JPanel jp1 = new JPanel();jp1.setBackground(Color.green);
JPanel jp2 = new JPanel(); jp2.setBackground(Color.red);
jp1.setSize(1100, 400);
jp2.setSize(980, 200);
JTable jt = new JTable(data,columnNames); jt.setSize(900, 350);
jt.setBackground(Color.ORANGE);
// Add table to JScrollpane
JScrollPane sp = new JScrollPane(jt); sp.setSize(1000, 380);
sp.setBackground(Color.CYAN);
jp1.add(sp);
jf.add(jp1);
jf.add(jp2);
jf.setVisible(true);
これは私が
..私はスクロールを使用しない場合は列名が消え、サイズが大きくパン気づい出力
ですがまた、列名を表示したい。
MigLayoutのようなLayoutManagerを使用していますか?これは通常、物事を簡素化します:http://stackoverflow.com/a/38457852/1368690 – hamena314
あなたの変数名は恐ろしいです。コードを読みにくくします。 – Michael
JFramesはデフォルトでBorderLayoutになっているので、JFrameにコンポーネントを追加するときは、BorderLayoutの位置を必ず設定してください。 BorderLayout.CENTER CENTERの位置は、ほとんどの場合、スクロールペインにテーブルを配置する場所です。スクロールペインを削除したときにテーブルヘッダーが消える理由は、テーブルがスクロールペインに追加されたときに、テーブルのJTableHeaderが自動的にJScrollPanes列ヘッダービューとして設定されるためです。スクロールして、レイアウトにJTableHeaderを追加する必要があります。 – Michael