2016-05-04 5 views
1

tabPaneを作成し、データベースからタブを追加しようとしています。しかし、サイズと場所を設定する際に問題がありますtabbedPane。ここに私のコードです。ここでJavaのTabbedPaneサイズに設定できません

JPanel pnlTemp; 
JTabbedPane tabPaneTemp; 
JButton btnTemp; 

int categoryCount= site.getCategoryCount(); 

try { 

//sql. is a class which I created for connection to database. 

    ResultSet resultCategory= sql.select("SELECT * FROM CATEGORY"); 

    for (int i = 0; i < categoryCount; i++) { 
     resultCategory.next(); 

     pnlTemp = new JPanel(); 
     tabPaneAnasayfa.addTab(resultCategory.getString("AD"), pnlTemp); 

     tabPaneTemp = new JTabbedPane(); 
     pnlTemp.add(tabPaneTemp); 

     tabPaneTemp.setSize(950, 460); 
     tabPaneTemp.setBounds(35,22,950, 460); 

     tabPaneTemp.setTabPlacement(JTabbedPane.BOTTOM); 

     createButtonToTab(tabPaneTemp); 


    } 

} catch (SQLException ex) { 
    Logger.getLogger(Anasayfa.class.getName()).log(Level.SEVERE, null, ex); 
} 



private void createButtonToTab(JTabbedPane tabPane) { 
JPanel pnlTemp; 
JButton btnTemp; 

ResultSet resultHaber = sql.select("SELECT * FROM HABER"); 
ArrayList<Haber> haberList = new ArrayList(); 
try { 
    while (resultHaber.next()) { 
     int haberID; 
     haberID = resultHaber.getInt("ID"); 
     haberList.add(site.getHaber(haberID)); 

    } 
} catch (SQLException ex) { 
    Logger.getLogger(Anasayfa.class 
      .getName()).log(Level.SEVERE, null, ex); 
} 

int listIndexi = 0; 
int haberSirasi = 1; 

int topHaberSayisi = haberList.size(); 
for (int i = 0; i < topHaberSayisi; i++) { 

    pnlTemp = new JPanel(); 
    btnTemp = new JButton(); 

    btnTemp.setSize(pnlTemp.getSize()); 

    pnlTemp.setLayout(new GridLayout()); 

    if (!haberList.get(listIndexi).haberSonDakikaMi) { 
     tabPane.addTab(String.valueOf(haberSirasi), pnlTemp); 
     Haber tempHaber; 
     tempHaber = haberList.get(listIndexi); 

     pnlTemp.add(btnTemp); 
     btnTemp.setText(haberList.get(listIndexi).haberBasligi); 
     haberSirasi++; 

     btnTemp.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent ae) { 
       haberOkuCagir(tempHaber.haberID); 
      } 
     }); 
    } 
    listIndexi++; 

} 
} 

は結果である:JPanel

enter image description here

答えて

1

pnlTemp = new JPanel();デフォルトのレイアウトはFlowLayoutです。したがって、FlowLayoutでは、位置をsetBounds()で設定することはできません。レイアウトマネージャhereの使い方を学ぶことができます。希望のデザインを実装するためにそれらの1つを選択します。

+0

ありがとうございました!私はそれをすべて試してみませんでしたが、BorderLayoutとGridBagLayoutは私が欲しいものを正確に働きました。 –

関連する問題