2016-05-19 7 views
0

既存のjpanelにjpanelを追加すると問題が発生します。jpanelをjavaのjpanelに追加する方法

私はjlistをセンターローンで、jbuttomを南の位置にしたい!

私はjlistを見ることができますが、jbuttomは表示されません!

私はEclipse 3.0のバージョンを使用しています。

これは私のコードです:

package classes; 

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 
import java.util.LinkedList; 

import javax.swing.JButton; 
import javax.swing.JComponent; 
import javax.swing.JLabel; 
import javax.swing.JList; 
import javax.swing.JPanel; 
import javax.swing.JTabbedPane; 

public class JPanelDecorator extends JPanel implements ActionListener 
{ 
    private static final long serialVersionUID = 1L; 
    private JList<String> list = null; 
    private JButton Change=null; 

    public JPanelDecorator() 
    { 
     super(); 
     setLayout(new BorderLayout());  
     setSize(450 ,400); 
     String animals_list[] = new String[AquaPanel.swims.size()]; 
     LinkedList<Swimmable> ir = new LinkedList<Swimmable>(AquaPanel.swims); 
     for(int i=0;i<ir.size();i++) 
     { 
      animals_list[i]=(i+1+". "+ir.get(i).toString()); 
     } 

     list = new JList<String>(animals_list); 
     list.setFont(new Font("Tahoma",Font.BOLD,15)); 
     list.setSize(450, 300); 
     add(list,BorderLayout.CENTER); 

     Change = new JButton("Change Color"); 
     Change.addActionListener(this); 
     add(Change,BorderLayout.CENTER); 
     repaint(); 
    } 
    @Override 
    public void actionPerformed(ActionEvent e) { 


    } 

} 

助けてください!

+1

[別のJPanelの内側のJPanel]の可能な重複(http://stackoverflow.com/questions/23398214/:

public JPanelDecorator() { //.... add(list,BorderLayout.CENTER); //... add(Change,BorderLayout.CENTER); // center again... //... } 

しかし、あなたが必要なものはこれですjpanel-inside-another-jpanel) – LoreV

+0

Eclipse 3.0は** 12歳**です! –

+0

@ greg-449は、オフィスで3.4.2で作業しています(フラッシュビルダー4.0)。 Netbeans 6.9.1、2010リリース。これはソフトウェアを更新することが常に可能ではありません... Java 6ではまだここにあります。 – AxelH

答えて

1

微妙なバグがあります。 JPanelDecoratorのコンストラクタでは、持っている:

public JPanelDecorator() 
{ 
    //.... 
    add(list,BorderLayout.CENTER); 
    //... 
    add(Change,BorderLayout.SOUTH); // south 
    //... 
} 
関連する問題