Java - 为什么我在 JFrame 中看不到我的列表?

标签 java swing

我在菜单栏下看不到我的列表,它应该显示一个列表(扑克牌) 我应该做什么?

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 和编码新手,我只是玩弄代码......但我想要结果

最佳答案

我看不到您将模型添加到列表的位置,因此 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(...)。

关于Java - 为什么我在 JFrame 中看不到我的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35440199/

相关文章:

java - 具有双单元格类型精度的 Jtable

java - Primefaces 5 + JSF 2.2 参数错误 : Parameter key is null

java - 带有“确定”按钮的消息框错误 - 字符串被截断

java - Java中计数器的一系列字符串操作

java - 一步一步的 gflot 教程?

java - 在文本上设置突出显示会删除该文本上的鼠标突出显示

java - 具有 2 个不同数据的 JTable

java - 如何检测用户是否单击窗口标题栏或 Java 中窗口边框的任何其他部分

java - 有没有办法可以循环检查 Frame.state 的状态,而不循环检查中的代码?

java - 在 C# 和 Java 应用程序之间传递数据