2016-02-16 73 views
0

我在MenuBar下看不到我的清單,它應該給我看清單(打牌) 我該怎麼辦?Java - 爲什麼我在JFrame中看不到我的列表?

IMAGE

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

public class Joc extends JFrame{ 

    JMenuBar mb = new JMenuBar(); 
    JMenu m1 = new JMenu("Optiuni"); 
    JMenuItem mi1 = new JMenuItem("Amesteca"); 
    JMenuItem mi2 = new JMenuItem ("Inchide"); 

    DefaultListModel<Card> model = new DefaultListModel<Card>(); 
    JList<Card> list = new JList<Card>(); 
    JScrollPane jsp = new JScrollPane(list); 

    Deck d = new Deck(); 

    public Joc() { 
     super("Joc"); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 

     setJMenuBar(mb); 

     add(jsp); 

     mb.add(m1); 
     m1.add(mi1); 
     m1.add(mi2); 

     ArrayList<Card> carti = d.getCards(); 
     for (Card c: carti) { 
      model.addElement(c); 
     } 

     mi1.addActionListener (
      new ActionListener() { 
        public void actionPerformed (ActionEvent ev) { 
         d.amesteca(); 
         ArrayList<Card> carti = d.getCards(); 
         model.clear(); 
          for (Card c: carti) { 
            model.addElement(c); 
         } 
        } 
      } 
     ); 

     mi2.addActionListener (
      new ActionListener() { 
        public void actionPerformed (ActionEvent ev) { 
         System.exit(0); 
        } 
      } 
     ); 


     setSize(500,500); 
     setVisible(true); 

    } 

    public static void main (String [] args) { 
     new Joc(); 
    } 

} 

誰能幫我解決這個問題?我是新來的Java和編碼,我只是玩代碼...但我想要的結果

回答

3

我沒有看到你的模型添加到列表中,所以JList有一個沒有任何東西的空模型利用該模型顯示

創建的JList:

DefaultListModel<Card> model = new DefaultListModel<Card>(); 
//JList<Card> list = new JList<Card>(); 
JList<Card> list = new JList<Card>(model); 

此外,你應該使用:

list.setVisibleRowCount(...); 

這將允許JList中確定自己的首選大小,你可以使用frame.pack()而不是frame.setSize(...)。

+0

謝謝!你解決了我的問題! –

相關問題