私は倉庫のデータベースと対話するためのGUIインターフェイスを作成しています。アプリケーションは、アイテムをデータベースに追加し、更新して表示する必要があります。私はデータベースにいくつかのテーブルを持っており、各テーブルではJPanelを作成してカードレイアウトに入れたいので、JMenuアイテムでそれらの間を移動できます。それぞれのJPanelは同じ形式です。上部には、テーブルに項目を追加するためのテキストフィールド、コンボボックスなどのボックスがあります。このボックスの下には、1行のJTableがあり、その下にJScrollPaneにJTableがあり、テーブルの内容を表示しています。最後の1列を除く各列の幅は150です(幅= 100、変更用のJButtonが含まれます)。最初のJTableをフィルタとして使用します(たとえば、最初のカラムに '1'が含まれている場合、2番目のJTableはIDが '1'で始まるアイテムのみを表示します)。私は異なるJPanelの正しいレイアウトを選択する方法を知らない。現在、各JPanelにはBorderLayoutがあり、各コンポーネントは中央に配置されています。しかし問題は、各列の幅を選択できないことです。JTableの幅のレイアウト
0
A
答えて
0
最後に、私は自分の問題を解決しました。実際には、JTableをJPanelに、JPanelをJScrollPaneに配置する必要があります。ここでは、コードは次のとおりです。
public class Brouillon extends JFrame {
public Brouillon() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jpContent = new JPanel();
JPanel jpCards = new JPanel();
jpContent.setLayout(new BoxLayout(jpContent, BoxLayout.PAGE_AXIS));
CardLayout clSelect = new CardLayout();
jpCards.setLayout(clSelect);
JButton jbTest = new JButton();
jbTest.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
clSelect.next(jpCards);
}
});
jpContent.add(jbTest);
JPanel jpContainer1 = new JPanel();
JTable jtData1 = new JTable(new Object[2][3], new String[] {"1", "2", "3"});
jtData1.getColumnModel().getColumn(0).setPreferredWidth(150);
jtData1.getColumnModel().getColumn(1).setPreferredWidth(150);
jtData1.getColumnModel().getColumn(2).setPreferredWidth(50);
JPanel jpTemp1 = new JPanel();
jpTemp1.setLayout(new BorderLayout());
jpTemp1.add(jtData1.getTableHeader(), BorderLayout.NORTH);
jpTemp1.add(jtData1, BorderLayout.CENTER);
JScrollPane jspData1 = new JScrollPane(jpTemp1);
jpContainer1.add(jspData1);
JPanel jpContainer2 = new JPanel();
JTable jtData2 = new JTable(new Object[2][7], new String[] {"1", "2", "3", "4", "5", "6", "7"});
jtData2.getColumnModel().getColumn(0).setPreferredWidth(150);
jtData2.getColumnModel().getColumn(1).setPreferredWidth(150);
jtData2.getColumnModel().getColumn(2).setPreferredWidth(150);
jtData2.getColumnModel().getColumn(3).setPreferredWidth(150);
jtData2.getColumnModel().getColumn(4).setPreferredWidth(150);
jtData2.getColumnModel().getColumn(5).setPreferredWidth(150);
jtData2.getColumnModel().getColumn(6).setPreferredWidth(50);
JPanel jpTemp2 = new JPanel();
jpTemp2.setLayout(new BorderLayout());
jpTemp2.add(jtData2, BorderLayout.CENTER);
jpTemp2.add(jtData2.getTableHeader(), BorderLayout.NORTH);
JScrollPane jspData2 = new JScrollPane(jpTemp2);
jpContainer2.add(jspData2);
jpCards.add(jpContainer2);
jpCards.add(jpContainer1);
jpContent.add(jpCards);
this.getContentPane().add(jpContent);
this.pack();
this.setVisible(true);
}
public static void main(String[] args) {
new Brouillon();
}
}
0
jTableでは、列サイズを設定できます。 おそらく以下の例が役に立ちます。これがあなたが探しているものなら教えてください!
TableColumn column = null;
for (int i = 0; i < 3; i++) {
column = table.getColumnModel().getColumn(i);
if (i == 2) {
column.setPreferredWidth(100); //sport column is bigger
} else {
column.setPreferredWidth(50);
}
}
関連する問題
- 1. 親のレイアウトの幅
- 2. netbeansのJtableの個々の列の幅
- 3. JTableの列の幅を変更する
- 4. Android、レイアウト画面の幅
- 5. viewForHeaderInSectionの自動レイアウト - ピン幅
- 6. ブートストラップ - 完全な幅のレイアウト
- 7. CellolodeのASCollectionNode全幅レイアウト
- 8. Android最小幅レイアウト
- 9. Androidテーブルのレイアウトの幅の問題
- 10. SearchViewの提案 - レイアウトの幅:match_parent
- 11. Androidレイアウト:2つの固定幅ビュー間の可変幅ビュー
- 12. レイアウトの固定幅、固定高さのフルハイト、全幅
- 13. Jtableの列幅のサイズ変更が機能しない
- 14. jQuery append breakableフレキシブルな幅のCSSレイアウト
- 15. ブートストラップ流体レイアウト - 固定幅のサイドバー
- 16. レイアウトの幅を同じにする
- 17. Androidのレイアウトと同じ幅と高さ
- 18. JavaのJTableの私は、次のように私は、列のサイズを設定するのJTableを持つ幅
- 19. CSSの最小幅と最大幅とフレキシブルなレイアウト
- 20. JTableが列幅のサイズを変更しています
- 21. 幅が狭くなると、中央のレイアウトになる2つの列のレイアウト
- 22. 固定幅のコンテンツ、無制限の背景幅を持つ2列のレイアウト
- 23. グリッドベースのデザインを使用した最大幅と最小幅の弾性レイアウト
- 24. 画面幅に固定幅レイアウトを自動調整
- 25. JTableの - JTableのを使用して行
- 26. 分-幅が凍結されたレイアウト
- 27. 3列レイアウト自動中段幅
- 28. なぜブートストラップシンプル全幅レイアウトがオーバーフロー
- 29. JTableの
- 30. JTableの
私はそれをもを使用しているが、私はスクロールペインでテーブルを置けば、それは有効になりませんし、私はBorderLayoutの中心部に入れた場合、それはすべて取りますjframeの場所。 – ardayigit
この投稿を確認してください。 http://stackoverflow.com/questions/953972/java-jtable-setting-column-width – Sirsendu
それは私の問題を解決していません... – ardayigit