2014-01-23 26 views
0

這個程序是supposted創建電影列表。電影beeing由添加按鈕(JButton),也有Erease按鈕女巫supposted清除Jtextfield。代碼編譯,但它只顯示空白的JFrame。我錯過了什麼? (Java的進口是有的,但他們將採取太多的空間給他們貼)我在這裏錯過了什麼? (可能很明顯)

public class SamodzielnaListaOsob extends JFrame implements ActionListener { 

JButton add, erease; 
JTextField film; 
DefaultListModel<String> listFilm; 

public SamodzielnaListaOsob(String title){ 
    super(title); 

     setDefaultCloseOperation(EXIT_ON_CLOSE); 


     final JTextField film = new JTextField("Tutaj wpisz tytul filmu", 10); 
     film.setBorder(BorderFactory.createTitledBorder(null, "Film")); 

     JPanel p1 = new JPanel(); 
      p1.add(film); 


     JButton add = new JButton("Dodaj do listy"); 
      add.addActionListener(new ActionListener(){ 
       @Override 
       public void actionPerformed(ActionEvent e) { 
          String nowyFilm = film.getText(); 
           if (nowyFilm !=""){ 
            listFilm.addElement(nowyFilm); 
            film.setText(""); 
           } 
       } 
      }); 
      JButton erease = new JButton("Wyczysc pole"); 
       erease.addActionListener(new ActionListener(){ 
        @Override 
        public void actionPerformed(ActionEvent e) { 
         film.setText(""); 

        } 
       }); 

       JPanel p2 = new JPanel(); 
       p2.add(add); 
       p2.add(erease); 

       listFilm = new DefaultListModel<String>(); 
       listFilm.addElement("Film0"); 
       listFilm.addElement("Film1"); 
       listFilm.addElement("Film2"); 





      setPreferredSize(new Dimension(900, 900));  
      pack(); 
      setVisible(true); 
} 




public static void main(String[] args) { 
    SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      new SamodzielnaListaOsob("List of movies"); 
     } 
    }); 
} 



} 

回答

5

的代碼添加組件面板,但面板從不添加到幀。

enter image description here

//setPreferredSize(new Dimension(900, 900)); 
p1.add(p2); 
setContentPane(p1); 

充分,編譯源。

import javax.swing.*; 
import java.awt.*; 

public class SamodzielnaListaOsob extends JFrame { 

    JButton add, erease; 
    JTextField film; 
    DefaultListModel<String> listFilm; 

    public SamodzielnaListaOsob(String title){ 
     super(title); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 

     final JTextField film = new JTextField("Tutaj wpisz tytul filmu", 10); 
     film.setBorder(BorderFactory.createTitledBorder(null, "Film")); 

     JPanel p1 = new JPanel(); 
     p1.add(film); 
     JButton add = new JButton("Dodaj do listy"); 
     JButton erease = new JButton("Wyczysc pole"); 

     JPanel p2 = new JPanel(); 
     p2.add(add); 
     p2.add(erease); 

     listFilm = new DefaultListModel<String>(); 
     listFilm.addElement("Film0"); 
     listFilm.addElement("Film1"); 
     listFilm.addElement("Film2"); 

     //setPreferredSize(new Dimension(900, 900)); 
     p1.add(p2); 
     setContentPane(p1); 
     pack(); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       new SamodzielnaListaOsob("List of movies"); 
      } 
     }); 
    } 
} 
+2

刪除了我的答案,因爲你是在這一點:)顯然更勝一籌(儘管一些更多的解釋,也將有助於...) –

+0

謝謝你,這是很明顯的:-)我現在明白了吧。 – user3177987

+0

不客氣。如果它有助於解決問題,請[接受](http://meta.stackexchange.com/a/65088/155831)答案。 –

相關問題