首页 > 解决方案 > 组合框条目未显示在框架上

问题描述

我对组合框有疑问。由于某种原因,我的条目没有显示在下拉列表中。我尝试了 2 种方法,但没有一种方法有效。组合框出现在框架中,但它是空的。我看不出问题出在哪里,并且编译没有返回任何错误。

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

public class TemplatesList extends JComboBox<String>
{
    public JComboBox faceCombo;
    private String[] lista = {"change", "handover"};
    private JComboBox wyobr = new JComboBox();


    public TemplatesList()
    {
    /*
        faceCombo = new JComboBox();
        faceCombo.setEditable(false);
        faceCombo.addItem("change request");
        faceCombo.addItem("emergancy change request");
        faceCombo.addItem("problem request");
        faceCombo.addItem("problem handover");
        faceCombo.addItem("Major Incident handover");
 */
for (int i=0; i < lista.length; i++)
{
    wyobr.addItem(lista[i]);
}
    }
}`enter code here`

主班

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

public class ChoosingPage
{
static JFrame frame;
JLabel choose;

public ChoosingPage ()
{
    frame = new JFrame ("Primark's templates");
    frame.setSize(400,400);
    frame.setLocation(50,50);
   // frame.setLayout(new FlowLayout(FlowLayout.CENTER));

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);

    frame.getContentPane().setBackground(Color.WHITE);



    TemplatesList lista = new TemplatesList();
    frame.add(lista, BorderLayout.SOUTH);


    frame.setVisible(true);
}

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

标签: java

解决方案


问题是您不需要从已有的 JComboBox 中创建另一个 JComboBox。您正在扩展一个 JComboBox,这意味着您可以访问它的所有方法。

例如:

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

public class TemplatesList extends JComboBox<String>
{
    private String[] lista = {"change", "handover"};


    public TemplatesList()
    {
        super(); //call JComboBox's constructor. This is standard practice
        for (int i=0; i < lista.length; i++)
        {
            this.addItem(lista[i]);
        }
    }
}

请注意

我添加super()到您的构造函数中。但是,这不是解决您问题的方法。但是,我们也不想运行 JComboBox 的构造函数。


推荐阅读