【问题标题】:How To Create JComboBox With Info From External Files?如何使用来自外部文件的信息创建 JComboBox?
【发布时间】:2025-11-25 14:20:05
【问题描述】:

我正在从另一个类调用以下代码,并且框架显示正确,但是我的 JComboBox 没有出现!我之前有一个工作版本,但是它无法识别同一类中的一个变量!

  1. 如何创建适用于整个类而不仅仅是其中一部分的变量字符串。
  2. 使用以下代码,为什么我的 JComboBox 不显示,我做错了什么?

import java.io.File;
import java.util.Scanner;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class ProjectList extends JFrame {
    private static final long serialVersionUID = 1l;
    String Path = new File("").getAbsolutePath();
    public Scanner x;

    public ProjectList() {
        super("My File");
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        setLocationRelativeTo(null);
        setResizable(false);
        setAlwaysOnTop(true);
        setUndecorated(true);
        setLocation(444, 327);
        setSize(400, 250);
        try {
            x = new Scanner(new File(Path + "/Name.txt"));
        } catch (Exception e) {
            System.out.println("Path Error: Path Does Not Exist!");
        }
    }

    public void readPJ1() {
        while (x.hasNext()) {
            String PJ1name = x.next();
        }
        String PJ1 = "";
        String PJ2 = "";
        String PJ3 = "";
        String PJ4 = "";
        String PJ5 = "";
        String PJ6 = "";
        String PJ7 = "";
        String PJ8 = "";
        String PJ9 = "";
        String PJ10 = "";
        String PJ11 = "";
        String PJ12 = "";
        String PJ13 = "";
        String PJ14 = "";
        String PJ15 = "";
        String PJ16 = "";
        String PJ17 = "";
        String PJ18 = "";
        String PJ19 = "";
        String PJ20 = "";
        JPanel p1 = new JPanel();
        String[] ho = { "jo", "ho", "joe" };
        JComboBox cb = new JComboBox(ho);
        add(p1);
    }
}

【问题讨论】:

    标签: java swing file-io jcombobox


    【解决方案1】:

    你在哪里调用readJP1() 方法?你没有,而且由于 Java 不会神奇地自行调用它,它永远不会运行。因此,添加数据和添加 JComboBox 的一种解决方案是调用所有必要的方法。另一个问题是您永远不会将 JComboBox cb 添加到 JPanel p1,因此即使调用 readJP1() 方法也不够——您必须在方法内将 JComboBox 添加到 JPanel。此外,您还需要将该 JPanel 添加到 GUI 中,然后再将其设置为可见。

    关于:

    如何创建适用于整个类而不仅仅是其中一部分的变量字符串。

    声明一个字符串字段——一个在类级别声明的实例变量。

    其他问题:您的文件读取代码看起来全错了。如果我是你,我会尝试与你的 GUI 分开调试它,然后在你让它工作后,将它添加到 GUI 代码中。

    【讨论】:

      【解决方案2】:
      1. 您可以创建一个可在类内部访问的字段(成员变量)
      2. 您需要将 JComboBox 添加到 JPanel :

        JPanel p1 = new JPanel(); String[] ho = { "jo", "ho", "joe" }; JComboBox cb = new JComboBox(ho); // add the JComboBox to the JPanel: p1.add(cb); // then add the JPanel to this JFrame: add(p1);

      【讨论】:

        最近更新 更多