2015-08-27 30 views
-1

我從另一個類調用以下代碼,並且框架顯示正確,但是我的JComboBox只是不顯示!我早些時候有一個工作版本,但它沒有識別出同一個類中的一個變量!如何使用外部文件的信息創建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); 
    } 
} 

回答

1
  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);

2

你在哪裏調用readJP1()方法?你不這樣做,因爲Java不會神奇地稱它自己,它永遠不會運行。因此,添加數據和添加JComboBox的一個解決方案就是調用所有必要的方法。另一個問題是,您永遠不會將JComboBox,cb添加到JPanel,p1,因此即使調用readJP1()方法也是不夠的 - 您必須將JComboBox添加到方法中的JPanel。另外,您需要在將GUI設置爲可見之前將其添加到GUI。

至於:

如何創建一個適用於整個類,而不是隻是它的部分變量字符串。

聲明一個字符串字段 - 一個在類級聲明的實例變量。

其他問題:您的文件閱讀代碼看起來都是錯誤的。如果我是你,我會嘗試從GUI單獨調試它,然後一旦你得到它的工作,將它添加到GUI代碼。

相關問題