2012-01-04 17 views
0

タブビューにあるscrollPanelsにある2つのJTableのサイズを変更しようとしています。私は12000、5000にフレームのサイズを設定することができたが、Jtable/scrollPanelはボールを再生していない。Jtrameのサイズを変更してJFrameを塗りつぶし、スクロールします。

私が働いていたテーブルの列のサイズを設定するためのいくつかのコードを発見したが、代わりにJFrameのを充填する、それだけで/ scrollPanel

表の一番下にスクロールバーが、誰もが思い付くことができます追加フレームを埋めるためにテーブルを取得する方法はまだスクロールしている?

表ファイルは次のとおりです。

public class ViewInTablePET extends JPanel { 
private String[][] rowData = new String[0][]; 
private String columnNames[] = {"Shop", "Type", "price", "dateAcquired", "notes"}; 
private DefaultTableModel tableMod = new DefaultTableModel(rowData, columnNames); 
private JTable table = new JTable(tableMod); 

public ViewInTablePET() { 

    String bob; 
    String[] dan; 

    for (Integer i = 0; i < AppModel.getArrayListPet().size(); i++) { 
     bob = AppModel.getArrayListPet().get(i).toString(); 
     dan = AppModel.getStringAsArray(bob, "\t"); 
     tableMod.insertRow(i, new Object[]{dan[0], dan[1], dan[2], dan[3], dan[4]}); 
    } 
    JScrollPane scrollPane = new JScrollPane(table); 
    this.add(scrollPane, BorderLayout.CENTER);  
} 
} 

フラムファイルは次のとおりです。第二読会で

public class ViewInTabbs extends JFrame { 

JLabel Average = new JLabel("Click a table row to get the average price"); 

public ViewInTabbs() { 

    JTabbedPane tabs =    new JTabbedPane(); 
    ViewInTablePetShope petShop = new ViewInTablePetShope(); 
    ViewInTablePET pet =   new ViewInTablePET(); 

    tabs.add("Pet Shope", (JPanel) petShop); 
    tabs.add("Pets in the shop", (JPanel) pet); 
    this.setTitle("Tabb View of Data"); 
    this.add(tabs, BorderLayout.CENTER); 
    this.setSize(12000, 5000); 
    this.setVisible(true); 
    this.add(Average, BorderLayout.SOUTH); 
} 
public void setAverage(String ave) { 
    this.Average.setText(ave); 
} 
} 

答えて

2

ああ..:犯人はFlowLayoutのデフォルトViewInTablePETのLayoutManagerのです。あなたが制約BorderLayout.CENTERJScrollPaneを追加するには、​​クラスでのBorderLayout

public ViewInTablePET() { 
    super(new BorderLayout()); 
    // your code 
    ... 
} 
2

に変更しますが、私はそのクラスのsetLayout(new BorderLayout())コールが表示されません。デフォルトでJPanelにはFlowLayoutがあるので、これは望ましい効果を持ちません。ただし、レイアウトをBorderLayoutに設定すると、最初に動作するはずです

関連する問題